def get(self): """ Return a list of builds. """ # tenants automatically restrict this query but we dont want # to include public repos tenant = auth.get_current_tenant() if not tenant.repository_ids: return self.respond([]) query = ( Build.query.options( joinedload("repository"), joinedload("revision"), subqueryload_all("revision.authors"), subqueryload_all("stats"), subqueryload_all("authors"), ) .filter(Build.repository_id.in_(tenant.repository_ids)) .order_by(Build.date_created.desc()) ) user = request.args.get("user") if user: if user == "me": user = auth.get_current_user() else: user = User.query.get(user) if not user: return self.respond([]) query = query.filter( Build.authors.any( Author.email.in_( db.session.query(Email.email).filter( Email.user_id == user.id, Email.verified == True # NOQA ) ) ) ) repository = request.args.get("repository") if repository: repo = Repository.from_full_name(repository) if not repo: return self.respond([]) query = query.filter(Build.repository_id == repo.id) return self.paginate_with_schema(builds_schema, query)
def get(self): """ Return a list of change requests. """ tenant = auth.get_current_tenant() if not tenant.repository_ids: return self.respond([]) query = (ChangeRequest.query.options( joinedload("head_revision"), joinedload("parent_revision", innerjoin=True), joinedload("author"), ).filter(ChangeRequest.repository_id.in_( tenant.repository_ids)).order_by( ChangeRequest.date_created.desc())) user = request.args.get("user") if user: if user == "me": user = auth.get_current_user() else: user = User.query.get(user) if not user: return self.respond([]) query = query.filter( ChangeRequest.author_id.in_( db.session.query(Author.id).filter( Author.email.in_( db.session.query(Email.email).filter( Email.user_id == user.id, Email.verified == True # NOQA ))))) repository = request.args.get("repository") if repository: repo = Repository.from_full_name(repository) if not repo: return self.respond([]) query = query.filter(ChangeRequest.repository_id == repo.id) schema = ChangeRequestWithBuildSchema(many=True, strict=True) return self.paginate_with_schema(schema, query)