diff options
author | Kamil TrzciĆski <ayufan@ayufan.eu> | 2017-01-19 11:37:38 +0000 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2017-01-20 09:49:41 +0100 |
commit | 038a00a21da626c9b1a33ad7ce260d126a3d23fa (patch) | |
tree | 776a96143f7525da80fcc0d3a15735c1cda8ea64 /lib | |
parent | ba51c752f76968698268637c868617ba34e68442 (diff) | |
download | gitlab-ce-038a00a21da626c9b1a33ad7ce260d126a3d23fa.tar.gz |
Merge branch 'fix/external-status-badge-links' into 'master'
Link external commit status badges to target URLs
Closes #25662
See merge request !8611
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/commit_statuses.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/ci/status/external/common.rb | 22 | ||||
-rw-r--r-- | lib/gitlab/ci/status/external/factory.rb | 13 |
3 files changed, 37 insertions, 0 deletions
diff --git a/lib/api/commit_statuses.rb b/lib/api/commit_statuses.rb index 4bbdf06a49c..b6e6820c3f4 100644 --- a/lib/api/commit_statuses.rb +++ b/lib/api/commit_statuses.rb @@ -78,6 +78,8 @@ module API description: params[:description] ) + render_validation_error!(status) if status.invalid? + begin case params[:state] when 'pending' diff --git a/lib/gitlab/ci/status/external/common.rb b/lib/gitlab/ci/status/external/common.rb new file mode 100644 index 00000000000..4969a350862 --- /dev/null +++ b/lib/gitlab/ci/status/external/common.rb @@ -0,0 +1,22 @@ +module Gitlab + module Ci + module Status + module External + module Common + def has_details? + subject.target_url.present? && + can?(user, :read_commit_status, subject) + end + + def details_path + subject.target_url + end + + def has_action? + false + end + end + end + end + end +end diff --git a/lib/gitlab/ci/status/external/factory.rb b/lib/gitlab/ci/status/external/factory.rb new file mode 100644 index 00000000000..07b15bd8d97 --- /dev/null +++ b/lib/gitlab/ci/status/external/factory.rb @@ -0,0 +1,13 @@ +module Gitlab + module Ci + module Status + module External + class Factory < Status::Factory + def self.common_helpers + Status::External::Common + end + end + end + end + end +end |