summaryrefslogtreecommitdiff
path: root/lib/api/commit_statuses.rb
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-03-01 13:59:15 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-03-01 13:59:15 +0100
commit74906f3dd8ec6084e56cc28523e59f7634a9837e (patch)
tree4dc0eb1515de7832f0fde6d02b9f23f27b43f1aa /lib/api/commit_statuses.rb
parent48d7ed63912053a2a20f4352b7119ce267eb06fa (diff)
downloadgitlab-ce-74906f3dd8ec6084e56cc28523e59f7634a9837e.tar.gz
Fix updaing commit status with optional attributes
Passing different optional attributes in case of updating an existing commit status should not create a new commit status with the same name.
Diffstat (limited to 'lib/api/commit_statuses.rb')
-rw-r--r--lib/api/commit_statuses.rb9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/api/commit_statuses.rb b/lib/api/commit_statuses.rb
index dba0831664c..9d9f82fdb83 100644
--- a/lib/api/commit_statuses.rb
+++ b/lib/api/commit_statuses.rb
@@ -72,14 +72,15 @@ module API
status = GenericCommitStatus.running_or_pending.find_or_initialize_by(
project: @project,
pipeline: pipeline,
- user: current_user,
name: name,
ref: ref,
- target_url: params[:target_url],
- description: params[:description],
- coverage: params[:coverage]
+ user: current_user
)
+ optional_attributes =
+ attributes_for_keys(%w[target_url description coverage])
+
+ status.update(optional_attributes) if optional_attributes.any?
render_validation_error!(status) if status.invalid?
begin