summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2019-05-27 13:44:39 +0700
committerShinya Maeda <shinya@gitlab.com>2019-05-28 09:29:59 +0700
commit7e05f3b78b6e2e892bc309105711316dc17a109d (patch)
treef72d134b613ba1815f89b1cd7dec754cbe77a8c0
parent2b8d597f2f60243008f58ee63b2264fc72f12215 (diff)
downloadgitlab-ce-use-source-ref-name-in-webhook.tar.gz
Use source ref for pipeline webhookuse-source-ref-name-in-webhook
When user uses Pipelines for merge requests, the pipeline is a run on a merge request ref instead of branch ref. However, we should send source ref as a webhook in order to respect the original behavior.
-rw-r--r--changelogs/unreleased/use-source-ref-name-in-webhook.yml5
-rw-r--r--lib/gitlab/data_builder/pipeline.rb2
-rw-r--r--spec/lib/gitlab/data_builder/pipeline_spec.rb9
3 files changed, 15 insertions, 1 deletions
diff --git a/changelogs/unreleased/use-source-ref-name-in-webhook.yml b/changelogs/unreleased/use-source-ref-name-in-webhook.yml
new file mode 100644
index 00000000000..1a5c56d79ca
--- /dev/null
+++ b/changelogs/unreleased/use-source-ref-name-in-webhook.yml
@@ -0,0 +1,5 @@
+---
+title: Use source ref in pipeline webhook
+merge_request: 28772
+author:
+type: fixed
diff --git a/lib/gitlab/data_builder/pipeline.rb b/lib/gitlab/data_builder/pipeline.rb
index fa06fb935f7..e1e813849bf 100644
--- a/lib/gitlab/data_builder/pipeline.rb
+++ b/lib/gitlab/data_builder/pipeline.rb
@@ -19,7 +19,7 @@ module Gitlab
def hook_attrs(pipeline)
{
id: pipeline.id,
- ref: pipeline.ref,
+ ref: pipeline.source_ref,
tag: pipeline.tag,
sha: pipeline.sha,
before_sha: pipeline.before_sha,
diff --git a/spec/lib/gitlab/data_builder/pipeline_spec.rb b/spec/lib/gitlab/data_builder/pipeline_spec.rb
index 9ef987a0826..1f36fd5c6ef 100644
--- a/spec/lib/gitlab/data_builder/pipeline_spec.rb
+++ b/spec/lib/gitlab/data_builder/pipeline_spec.rb
@@ -50,5 +50,14 @@ describe Gitlab::DataBuilder::Pipeline do
it { expect(attributes[:variables]).to be_a(Array) }
it { expect(attributes[:variables]).to contain_exactly({ key: 'TRIGGER_KEY_1', value: 'TRIGGER_VALUE_1' }) }
end
+
+ context 'when pipeline is a detached merge request pipeline' do
+ let(:merge_request) { create(:merge_request, :with_detached_merge_request_pipeline) }
+ let(:pipeline) { merge_request.all_pipelines.first }
+
+ it 'returns a source ref' do
+ expect(attributes[:ref]).to eq(merge_request.source_branch)
+ end
+ end
end
end