summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/projects/commit_controller.rb6
-rw-r--r--config/routes.rb7
2 files changed, 13 insertions, 0 deletions
diff --git a/app/controllers/projects/commit_controller.rb b/app/controllers/projects/commit_controller.rb
index 21f4d9f44ec..637a911177c 100644
--- a/app/controllers/projects/commit_controller.rb
+++ b/app/controllers/projects/commit_controller.rb
@@ -57,6 +57,12 @@ class Projects::CommitController < Projects::ApplicationController
render layout: false
end
+ def status
+ status_sha = ci_commit.sha if ci_commit
+ image = Ci::ImageForBuildService.new.execute(@project, sha: status_sha)
+ send_file(image.path, filename: image.name, disposition: 'inline', type: 'image/svg+xml')
+ end
+
private
def commit
diff --git a/config/routes.rb b/config/routes.rb
index 3f6561a1fe0..30e42e197f4 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -493,6 +493,13 @@ Rails.application.routes.draw do
constraints: { id: /(?:[^.]|\.(?!atom$))+/, format: /atom/ },
as: :commits
)
+
+ get(
+ '/status/*id/badge',
+ to: 'commit#status',
+ constraints: { format: /png/ },
+ as: :commit_status
+ )
end
resource :avatar, only: [:show, :destroy]