summaryrefslogtreecommitdiff
path: root/lib/api
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api')
-rw-r--r--lib/api/builds.rb27
-rw-r--r--lib/api/entities.rb20
2 files changed, 27 insertions, 20 deletions
diff --git a/lib/api/builds.rb b/lib/api/builds.rb
index 0ddb9e98de6..863be0d5e40 100644
--- a/lib/api/builds.rb
+++ b/lib/api/builds.rb
@@ -15,23 +15,15 @@ module API
# GET /projects/:id/builds
get ':id/builds' do
all_builds = user_project.builds
- builds = all_builds.order('created_at DESC')
+ builds = all_builds.order('id DESC')
builds =
case params[:scope]
- when 'all'
- builds
when 'finished'
builds.finished
when 'running'
builds.running
- when 'pending'
- builds.pending
- when 'success'
- builds.success
- when 'failed'
- builds.failed
else
- builds.running_or_pending.reverse_order
+ builds
end
page = (params[:page] || 1).to_i
@@ -59,15 +51,14 @@ module API
# Example Request:
# GET /projects/:id/build/:build_id/trace
get ':id/builds/:build_id/trace' do
- trace = get_build(params[:build_id]).trace
- trace =
- unless trace.nil?
- trace.split("\n")
- else
- []
- end
+ build = get_build(params[:build_id])
+
+ header 'Content-Disposition', "infile; filename=\"#{build.id}.log\""
+ content_type 'text/plain'
+ env['api.format'] = :binary
- present trace
+ trace = build.trace
+ body trace
end
end
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 0bf50490eac..76b5d14f202 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -367,14 +367,30 @@ module API
expose :id, :variables
end
+ class CiCommit < Grape::Entity
+ expose :id
+ expose :ref
+ expose :sha
+ expose :committed_at
+ end
+
+ class CiRunner < Grape::Entity
+ expose :id
+ expose :token
+ expose :description
+ expose :active
+ expose :is_shared
+ expose :name
+ end
+
class Build < Grape::Entity
expose :id
expose :status
expose :stage
expose :name
expose :ref
- expose :commit
- expose :runner
+ expose :commit, with: CiCommit
+ expose :runner, with: CiRunner
expose :created_at
expose :started_at
expose :finished_at