summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2018-03-22 21:09:19 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2018-03-22 21:09:19 +0000
commitbe0ce05c5d07b0b27be243f0a3d57b662dcab1af (patch)
treedac685901f8daf70e59f233282e023627afd3d84
parent5c36e1b96a7c159a3f8a71528b14cc1c726a8bb9 (diff)
parent04b8e00feb6a06bfef3903a9e03d24296c4734a6 (diff)
downloadgitlab-ce-be0ce05c5d07b0b27be243f0a3d57b662dcab1af.tar.gz
Merge branch 'ci-pipeline-commit-lookup' into 'master'
Use porcelain commit lookup method on CI::CreatePipelineService Closes charts/helm.gitlab.io#291 See merge request gitlab-org/gitlab-ce!17911
-rw-r--r--app/services/ci/create_pipeline_service.rb2
-rw-r--r--changelogs/unreleased/ci-pipeline-commit-lookup.yml5
-rw-r--r--lib/gitlab/git/repository.rb8
3 files changed, 10 insertions, 5 deletions
diff --git a/app/services/ci/create_pipeline_service.rb b/app/services/ci/create_pipeline_service.rb
index 3b3d9239086..ad27f320853 100644
--- a/app/services/ci/create_pipeline_service.rb
+++ b/app/services/ci/create_pipeline_service.rb
@@ -65,7 +65,7 @@ module Ci
project.pipelines
.where(ref: pipeline.ref)
.where.not(id: pipeline.id)
- .where.not(sha: project.repository.sha_from_ref(pipeline.ref))
+ .where.not(sha: project.commit(pipeline.ref).try(:id))
.created_or_pending
end
diff --git a/changelogs/unreleased/ci-pipeline-commit-lookup.yml b/changelogs/unreleased/ci-pipeline-commit-lookup.yml
new file mode 100644
index 00000000000..b2a1e4c2163
--- /dev/null
+++ b/changelogs/unreleased/ci-pipeline-commit-lookup.yml
@@ -0,0 +1,5 @@
+---
+title: Use porcelain commit lookup method on CI::CreatePipelineService
+merge_request: 17911
+author:
+type: fixed
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb
index 208710b0935..c15c128507d 100644
--- a/lib/gitlab/git/repository.rb
+++ b/lib/gitlab/git/repository.rb
@@ -516,10 +516,6 @@ module Gitlab
end
end
- def sha_from_ref(ref)
- rev_parse_target(ref).oid
- end
-
# Return the object that +revspec+ points to. If +revspec+ is an
# annotated tag, then return the tag's target instead.
def rev_parse_target(revspec)
@@ -2409,6 +2405,10 @@ module Gitlab
def rev_list_param(spec)
spec == :all ? ['--all'] : spec
end
+
+ def sha_from_ref(ref)
+ rev_parse_target(ref).oid
+ end
end
end
end