''', [job_id, project_id, project_id]) filename = r[0] filename = filename.replace('/', '_') g.release_db() f = storage.download_source(filename) if not f: abort(404) return send_file(f) cache_upload_parser = api.parser() cache_upload_parser.add_argument('cache.tar.snappy', location='files', type=FileStorage, required=True) @ns.route("/cache") class Cache(Resource): @job_token_required def get(self): project_id = g.token['project']['id'] job_name = g.token['job']['name'] template = 'project_%s_job_%s.tar.snappy' key = template % (project_id, job_name) key = key.replace('/', '_')
''', [job_id, project_id, project_id]) filename = r[0] filename = filename.replace('/', '_') g.release_db() f = storage.download_source(filename) if not f: abort(404) return send_file(f) cache_upload_parser = api.parser() cache_upload_parser.add_argument('cache.tar.gz', location='files', type=FileStorage, required=True) @ns.route("/cache") class Cache(Resource): @job_token_required def get(self): project_id = g.token['project']['id'] job_name = g.token['job']['name'] template = 'project_%s_job_%s.tar.gz' key = template % (project_id, job_name)
AND j.name = %s AND jb.subject = %s JOIN build b ON j.build_id = b.id AND b.project_id = %s ORDER BY j.end_date desc LIMIT 1 ''', [project_id, job_name, subject, project_id]) if not badge: abort(404) return get_badge(subject, badge['status'], badge['color']) upload_parser = api.parser() upload_parser.add_argument('project.zip', location='files', type=FileStorage, required=True) @ns.route('/archive') @api.response(403, 'Not Authorized') class Archive(Resource): def get(self, project_id): job_name = request.args.get('job_name', None) filename = request.args.get('filename', None) branch = request.args.get('branch', None) if not filename or not job_name: abort(404)