diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-01-05 15:12:35 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-01-05 15:12:35 +0000 |
commit | 7c3c901ada6fc4a6d2d3ce7a2cf8188cf6615008 (patch) | |
tree | 20ce6767a9ce239b893b64fbf04d815b79f98686 | |
parent | 9b1270280a65cc39c8dd908a12f8dbc7847ec971 (diff) | |
parent | edd2ce38369e5a332b1b9932647d670862ffddbf (diff) | |
download | gitlab-ce-7c3c901ada6fc4a6d2d3ce7a2cf8188cf6615008.tar.gz |
Merge branch 'joshfng/gitlab-ce-fix-3802' into 'master'
Show 'New Merge Request' buttons on canonical repo. (by @joshfng)
Replaces https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2189 to run tests on our runners.
See merge request !2300
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | app/views/projects/buttons/_dropdown.html.haml | 5 | ||||
-rw-r--r-- | app/views/projects/merge_requests/index.html.haml | 5 | ||||
-rw-r--r-- | features/project/fork.feature | 11 | ||||
-rw-r--r-- | features/steps/project/fork.rb | 19 |
5 files changed, 38 insertions, 4 deletions
diff --git a/CHANGELOG b/CHANGELOG index 47ef06bee54..d841b149615 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -96,6 +96,8 @@ v 8.3.0 - Do not show build status unless builds are enabled and `.gitlab-ci.yml` is present - Persist runners registration token in database - Fix online editor should not remove newlines at the end of the file + - Expose Git's version in the admin area + - Show "New Merge Request" buttons on canonical repos when you have a fork (Josh Frye) v 8.2.3 - Fix application settings cache not expiring after changes (Stan Hu) diff --git a/app/views/projects/buttons/_dropdown.html.haml b/app/views/projects/buttons/_dropdown.html.haml index 1f639fecc30..f9ab78e7874 100644 --- a/app/views/projects/buttons/_dropdown.html.haml +++ b/app/views/projects/buttons/_dropdown.html.haml @@ -8,9 +8,10 @@ = link_to url_for_new_issue(@project, only_path: true) do = icon('exclamation-circle fw') New issue - - if can?(current_user, :create_merge_request, @project) + - merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project)) + - if merge_project %li - = link_to new_namespace_project_merge_request_path(@project.namespace, @project) do + = link_to new_namespace_project_merge_request_path(merge_project.namespace, merge_project) do = icon('tasks fw') New merge request - if can?(current_user, :create_snippet, @project) diff --git a/app/views/projects/merge_requests/index.html.haml b/app/views/projects/merge_requests/index.html.haml index 086298e5af1..8d5d0394a82 100644 --- a/app/views/projects/merge_requests/index.html.haml +++ b/app/views/projects/merge_requests/index.html.haml @@ -6,9 +6,10 @@ .controls = render 'shared/issuable/search_form', path: namespace_project_merge_requests_path(@project.namespace, @project) - - if can? current_user, :create_merge_request, @project + - merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project)) + - if merge_project .pull-left.hidden-xs - = link_to new_namespace_project_merge_request_path(@project.namespace, @project), class: "btn btn-new", title: "New Merge Request" do + = link_to new_namespace_project_merge_request_path(merge_project.namespace, merge_project), class: "btn btn-new", title: "New Merge Request" do %i.fa.fa-plus New Merge Request = render 'shared/issuable/filter', type: :merge_requests diff --git a/features/project/fork.feature b/features/project/fork.feature index 22f68e5b340..37cd53ee977 100644 --- a/features/project/fork.feature +++ b/features/project/fork.feature @@ -14,3 +14,14 @@ Feature: Project Fork And I click link "Fork" When I fork to my namespace Then I should see a "Name has already been taken" warning + + Scenario: Merge request on canonical repo goes to fork merge request page + Given I click link "Fork" + And I fork to my namespace + Then I should see the forked project page + When I visit project "Shop" page + Then I should see "New merge request" + And I goto the Merge Requests page + Then I should see "New merge request" + And I click link "New merge request" + Then I should see the new merge request page for my namespace diff --git a/features/steps/project/fork.rb b/features/steps/project/fork.rb index b0230add34f..e98bd51ca89 100644 --- a/features/steps/project/fork.rb +++ b/features/steps/project/fork.rb @@ -30,4 +30,23 @@ class Spinach::Features::ProjectFork < Spinach::FeatureSteps click_link current_user.name end end + + step 'I should see "New merge request"' do + expect(page).to have_content(/new merge request/i) + end + + step 'I goto the Merge Requests page' do + page.within '.page-sidebar-expanded' do + click_link "Merge Requests" + end + end + + step 'I click link "New merge request"' do + expect(page).to have_content(/new merge request/i) + click_link "New Merge Request" + end + + step 'I should see the new merge request page for my namespace' do + current_path.should have_content(/#{current_user.namespace.name}/i) + end end |