Skip to content
Snippets Groups Projects
Commit 68e3fa0e authored by Alex Sanford's avatar Alex Sanford Committed by Sean McGivern
Browse files

Add ability to disable Merge Request URL on push

parent d68c23a0
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -316,6 +316,7 @@ class ProjectsController < Projects::ApplicationController
:namespace_id,
:only_allow_merge_if_all_discussions_are_resolved,
:only_allow_merge_if_pipeline_succeeds,
:printing_merge_request_link_enabled,
:path,
:public_builds,
:request_access_enabled,
Loading
Loading
Loading
Loading
@@ -7,6 +7,8 @@ module MergeRequests
end
 
def execute(changes)
return [] unless project.printing_merge_request_link_enabled
branches = get_branches(changes)
merge_requests_map = opened_merge_requests_from_source_branches(branches)
branches.map do |branch|
Loading
Loading
Loading
Loading
@@ -13,3 +13,7 @@
= form.label :only_allow_merge_if_all_discussions_are_resolved do
= form.check_box :only_allow_merge_if_all_discussions_are_resolved
%strong Only allow merge requests to be merged if all discussions are resolved
.checkbox
= form.label :printing_merge_request_link_enabled do
= form.check_box :printing_merge_request_link_enabled
%strong Show link to create/view merge request when pushing from the command line
---
title: Add ability to disable Merge Request URL on push
merge_request: 9663
author: Alex Sanford
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class AddPrintingMergeRequestLinkEnabledToProject < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
disable_ddl_transaction!
# Set this constant to true if this migration requires downtime.
DOWNTIME = false
def up
add_column_with_default(:projects, :printing_merge_request_link_enabled, :boolean, default: true)
end
def down
remove_column(:projects, :printing_merge_request_link_enabled)
end
end
Loading
Loading
@@ -1003,6 +1003,7 @@ ActiveRecord::Schema.define(version: 20170315174634) do
t.boolean "lfs_enabled"
t.text "description_html"
t.boolean "only_allow_merge_if_all_discussions_are_resolved"
t.boolean "printing_merge_request_link_enabled", default: true, null: false
end
 
add_index "projects", ["ci_id"], name: "index_projects_on_ci_id", using: :btree
Loading
Loading
Loading
Loading
@@ -62,4 +62,27 @@ feature 'Project settings > Merge Requests', feature: true, js: true do
expect(page).to have_content('Only allow merge requests to be merged if all discussions are resolved')
end
end
describe 'Checkbox to enable merge request link' do
before do
visit edit_project_path(project)
end
scenario 'is initially checked' do
checkbox = find_field('project_printing_merge_request_link_enabled')
expect(checkbox).to be_checked
end
scenario 'when unchecked sets :printing_merge_request_link_enabled to false' do
uncheck('project_printing_merge_request_link_enabled')
click_on('Save')
# Wait for save to complete and page to reload
checkbox = find_field('project_printing_merge_request_link_enabled')
expect(checkbox).not_to be_checked
project.reload
expect(project.printing_merge_request_link_enabled).to be(false)
end
end
end
Loading
Loading
@@ -397,16 +397,25 @@ describe API::Internal, api: true do
 
before do
project.team << [user, :developer]
get api("/internal/merge_request_urls?project=#{repo_name}&changes=#{changes}"), secret_token: secret_token
end
 
it 'returns link to create new merge request' do
get api("/internal/merge_request_urls?project=#{repo_name}&changes=#{changes}"), secret_token: secret_token
expect(json_response).to match [{
"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",
"new_merge_request" => true
}]
end
it 'returns empty array if printing_merge_request_link_enabled is false' do
project.update!(printing_merge_request_link_enabled: false)
get api("/internal/merge_request_urls?project=#{repo_name}&changes=#{changes}"), secret_token: secret_token
expect(json_response).to eq([])
end
end
 
describe 'POST /notify_post_receive' do
Loading
Loading
Loading
Loading
@@ -130,5 +130,15 @@ describe MergeRequests::GetUrlsService do
}])
end
end
context 'when printing_merge_request_link_enabled is false' do
it 'returns empty array' do
project.update!(printing_merge_request_link_enabled: false)
result = service.execute(existing_branch_changes)
expect(result).to eq([])
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment