Make new merge request URL more friendly when pushing code
This commit is contained in:
parent
4cf1845e7e
commit
e211ef4e9d
6 changed files with 15 additions and 9 deletions
|
@ -89,6 +89,8 @@ class Projects::MergeRequests::CreationsController < Projects::MergeRequests::Ap
|
||||||
|
|
||||||
def build_merge_request
|
def build_merge_request
|
||||||
params[:merge_request] ||= ActionController::Parameters.new(source_project: @project)
|
params[:merge_request] ||= ActionController::Parameters.new(source_project: @project)
|
||||||
|
params[:merge_request][:source_branch] ||= params[:merge_request_source_branch].presence
|
||||||
|
|
||||||
@merge_request = ::MergeRequests::BuildService.new(project, current_user, merge_request_params.merge(diff_options: diff_options)).execute
|
@merge_request = ::MergeRequests::BuildService.new(project, current_user, merge_request_params.merge(diff_options: diff_options)).execute
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -50,8 +50,8 @@ module MergeRequests
|
||||||
end
|
end
|
||||||
|
|
||||||
def url_for_new_merge_request(branch_name)
|
def url_for_new_merge_request(branch_name)
|
||||||
merge_request_params = { source_branch: branch_name }
|
url = Gitlab::Routing.url_helpers.project_new_merge_request_url(project, branch_name)
|
||||||
url = Gitlab::Routing.url_helpers.project_new_merge_request_url(project, merge_request: merge_request_params)
|
|
||||||
{ branch_name: branch_name, url: url, new_merge_request: true }
|
{ branch_name: branch_name, url: url, new_merge_request: true }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Make new merge request URL more friendly when pushing code
|
||||||
|
merge_request: 22526
|
||||||
|
author: "@blackst0ne"
|
||||||
|
type: changed
|
|
@ -150,8 +150,6 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
|
||||||
post '', action: :create, as: nil
|
post '', action: :create, as: nil
|
||||||
|
|
||||||
scope path: 'new', as: :new_merge_request do
|
scope path: 'new', as: :new_merge_request do
|
||||||
get '', action: :new
|
|
||||||
|
|
||||||
scope constraints: { format: nil }, action: :new do
|
scope constraints: { format: nil }, action: :new do
|
||||||
get :diffs, defaults: { tab: 'diffs' }
|
get :diffs, defaults: { tab: 'diffs' }
|
||||||
get :pipelines, defaults: { tab: 'pipelines' }
|
get :pipelines, defaults: { tab: 'pipelines' }
|
||||||
|
@ -165,6 +163,7 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
|
||||||
get :diff_for_path
|
get :diff_for_path
|
||||||
get :branch_from
|
get :branch_from
|
||||||
get :branch_to
|
get :branch_to
|
||||||
|
get '(:merge_request_source_branch)', action: :new
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -665,7 +665,7 @@ describe API::Internal do
|
||||||
|
|
||||||
expect(json_response).to match [{
|
expect(json_response).to match [{
|
||||||
"branch_name" => "new_branch",
|
"branch_name" => "new_branch",
|
||||||
"url" => "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new?merge_request%5Bsource_branch%5D=new_branch",
|
"url" => "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new/new_branch",
|
||||||
"new_merge_request" => true
|
"new_merge_request" => true
|
||||||
}]
|
}]
|
||||||
end
|
end
|
||||||
|
@ -686,7 +686,7 @@ describe API::Internal do
|
||||||
|
|
||||||
expect(json_response).to match [{
|
expect(json_response).to match [{
|
||||||
"branch_name" => "new_branch",
|
"branch_name" => "new_branch",
|
||||||
"url" => "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new?merge_request%5Bsource_branch%5D=new_branch",
|
"url" => "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new/new_branch",
|
||||||
"new_merge_request" => true
|
"new_merge_request" => true
|
||||||
}]
|
}]
|
||||||
end
|
end
|
||||||
|
@ -819,7 +819,7 @@ describe API::Internal do
|
||||||
|
|
||||||
expect(json_response['merge_request_urls']).to match [{
|
expect(json_response['merge_request_urls']).to match [{
|
||||||
"branch_name" => "new_branch",
|
"branch_name" => "new_branch",
|
||||||
"url" => "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new?merge_request%5Bsource_branch%5D=new_branch",
|
"url" => "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new/new_branch",
|
||||||
"new_merge_request" => true
|
"new_merge_request" => true
|
||||||
}]
|
}]
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ describe MergeRequests::GetUrlsService do
|
||||||
let(:project) { create(:project, :public, :repository) }
|
let(:project) { create(:project, :public, :repository) }
|
||||||
let(:service) { described_class.new(project) }
|
let(:service) { described_class.new(project) }
|
||||||
let(:source_branch) { "merge-test" }
|
let(:source_branch) { "merge-test" }
|
||||||
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new?merge_request%5Bsource_branch%5D=#{source_branch}" }
|
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new/#{source_branch}" }
|
||||||
let(:show_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/#{merge_request.iid}" }
|
let(:show_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/#{merge_request.iid}" }
|
||||||
let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
|
let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/#{source_branch}" }
|
||||||
let(:deleted_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 #{Gitlab::Git::BLANK_SHA} refs/heads/#{source_branch}" }
|
let(:deleted_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 #{Gitlab::Git::BLANK_SHA} refs/heads/#{source_branch}" }
|
||||||
|
@ -117,7 +117,7 @@ describe MergeRequests::GetUrlsService do
|
||||||
let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/new_branch" }
|
let(:new_branch_changes) { "#{Gitlab::Git::BLANK_SHA} 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/new_branch" }
|
||||||
let(:existing_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/markdown" }
|
let(:existing_branch_changes) { "d14d6c0abdd253381df51a723d58691b2ee1ab08 570e7b2abdd848b95f2f578043fc23bd6f6fd24d refs/heads/markdown" }
|
||||||
let(:changes) { "#{new_branch_changes}\n#{existing_branch_changes}" }
|
let(:changes) { "#{new_branch_changes}\n#{existing_branch_changes}" }
|
||||||
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new?merge_request%5Bsource_branch%5D=new_branch" }
|
let(:new_merge_request_url) { "http://#{Gitlab.config.gitlab.host}/#{project.namespace.name}/#{project.path}/merge_requests/new/new_branch" }
|
||||||
|
|
||||||
it 'returns 2 urls for both creating new and showing merge request' do
|
it 'returns 2 urls for both creating new and showing merge request' do
|
||||||
result = service.execute(changes)
|
result = service.execute(changes)
|
||||||
|
|
Loading…
Reference in a new issue