Commit 0f972ef9 authored by Fabio Pitino's avatar Fabio Pitino

Use Pull Request number instead of ID

Also avoid using long running transaction
in ExternalPullRequest::CreatePipelineService
parent a4e3f81f
...@@ -20,8 +20,11 @@ class ProcessGithubPullRequestEventService < ::BaseService ...@@ -20,8 +20,11 @@ class ProcessGithubPullRequestEventService < ::BaseService
# and the pipeline is created for all newly pushed branches. # and the pipeline is created for all newly pushed branches.
# At that point we will be able to reference it back if a pull request # At that point we will be able to reference it back if a pull request
# was created. # was created.
ExternalPullRequest.create_or_update_from_params(params) do |pr| ExternalPullRequest.create_or_update_from_params(params).tap do |pull_request|
ExternalPullRequests::CreatePipelineService.new(project, current_user).execute(pr) if pull_request.errors.empty?
ExternalPullRequests::CreatePipelineService.new(project, current_user)
.execute(pull_request)
end
end end
end end
...@@ -30,7 +33,7 @@ class ProcessGithubPullRequestEventService < ::BaseService ...@@ -30,7 +33,7 @@ class ProcessGithubPullRequestEventService < ::BaseService
def params_from_webhook(params) def params_from_webhook(params)
{ {
project_id: project.id, project_id: project.id,
pull_request_iid: params.dig(:pull_request, :id), pull_request_iid: params.dig(:pull_request, :number),
source_branch: params.dig(:pull_request, :head, :ref), source_branch: params.dig(:pull_request, :head, :ref),
source_sha: params.dig(:pull_request, :head, :sha), source_sha: params.dig(:pull_request, :head, :sha),
source_repository: params.dig(:pull_request, :head, :repo, :full_name), source_repository: params.dig(:pull_request, :head, :repo, :full_name),
......
---
title: Use Pull Request number instead of internal Pull Request ID
merge_request: 16504
author:
type: fixed
...@@ -48,7 +48,7 @@ module API ...@@ -48,7 +48,7 @@ module API
# pull_request params # pull_request params
optional :action, type: String, desc: 'Pull Request action' optional :action, type: String, desc: 'Pull Request action'
optional 'pull_request.id', type: Integer, desc: 'Pull request ID' optional 'pull_request.number', type: Integer, desc: 'Pull request IID'
optional 'pull_request.head.ref', type: String, desc: 'Source branch' optional 'pull_request.head.ref', type: String, desc: 'Source branch'
optional 'pull_request.head.sha', type: String, desc: 'Source sha' optional 'pull_request.head.sha', type: String, desc: 'Source sha'
optional 'pull_request.head.repo.full_name', type: String, desc: 'Source repository' optional 'pull_request.head.repo.full_name', type: String, desc: 'Source repository'
......
...@@ -94,7 +94,7 @@ describe API::ProjectMirror do ...@@ -94,7 +94,7 @@ describe API::ProjectMirror do
let(:params) do let(:params) do
{ {
pull_request: { pull_request: {
id: 123, number: 123,
head: { head: {
ref: source_branch, ref: source_branch,
sha: source_sha, sha: source_sha,
......
...@@ -9,7 +9,7 @@ describe ProcessGithubPullRequestEventService do ...@@ -9,7 +9,7 @@ describe ProcessGithubPullRequestEventService do
let(:params) do let(:params) do
{ {
pull_request: { pull_request: {
id: 123, number: 123,
head: { head: {
ref: source_branch, ref: source_branch,
sha: source_sha, sha: source_sha,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment