Commit 79248f4ca503a765131731dc7ffa5bfeca89cf73
Exists in
master
and in
4 other branches
Merge pull request #5866 from jhollingsworth/fix/default-public-pull-url
Update default public pull url.
Showing
5 changed files
with
45 additions
and
10 deletions
Show diff stats
app/helpers/projects_helper.rb
| @@ -179,4 +179,12 @@ module ProjectsHelper | @@ -179,4 +179,12 @@ module ProjectsHelper | ||
| 179 | 179 | ||
| 180 | title | 180 | title |
| 181 | end | 181 | end |
| 182 | + | ||
| 183 | + def default_url_to_repo | ||
| 184 | + current_user ? @project.url_to_repo : @project.http_url_to_repo | ||
| 185 | + end | ||
| 186 | + | ||
| 187 | + def default_clone_protocol | ||
| 188 | + current_user ? "ssh" : "http" | ||
| 189 | + end | ||
| 182 | end | 190 | end |
app/views/projects/empty.html.haml
| @@ -29,7 +29,7 @@ | @@ -29,7 +29,7 @@ | ||
| 29 | touch README | 29 | touch README |
| 30 | git add README | 30 | git add README |
| 31 | git commit -m 'first commit' | 31 | git commit -m 'first commit' |
| 32 | - %span.clone= "git remote add origin #{@project.url_to_repo}" | 32 | + %span.clone= "git remote add origin #{default_url_to_repo}" |
| 33 | :preserve | 33 | :preserve |
| 34 | git push -u origin master | 34 | git push -u origin master |
| 35 | 35 | ||
| @@ -38,7 +38,7 @@ | @@ -38,7 +38,7 @@ | ||
| 38 | %pre.dark | 38 | %pre.dark |
| 39 | :preserve | 39 | :preserve |
| 40 | cd existing_git_repo | 40 | cd existing_git_repo |
| 41 | - %span.clone= "git remote add origin #{@project.url_to_repo}" | 41 | + %span.clone= "git remote add origin #{default_url_to_repo}" |
| 42 | :preserve | 42 | :preserve |
| 43 | git push -u origin master | 43 | git push -u origin master |
| 44 | 44 |
app/views/shared/_clone_panel.html.haml
| 1 | .git-clone-holder | 1 | .git-clone-holder |
| 2 | - %button{class: "btn #{ current_user ? 'active' : '' }", :"data-clone" => @project.ssh_url_to_repo} SSH | ||
| 3 | - %button{class: "btn #{ current_user ? '' : 'active' }", :"data-clone" => @project.http_url_to_repo}= gitlab_config.protocol.upcase | ||
| 4 | - = text_field_tag :project_clone, (current_user ? @project.url_to_repo : @project.http_url_to_repo), class: "one_click_select span5", readonly: true | 2 | + %button{class: "btn #{ 'active' if default_clone_protocol == 'ssh' }", :"data-clone" => @project.ssh_url_to_repo} SSH |
| 3 | + %button{class: "btn #{ 'active' if default_clone_protocol == 'http' }", :"data-clone" => @project.http_url_to_repo}= gitlab_config.protocol.upcase | ||
| 4 | + = text_field_tag :project_clone, default_url_to_repo, class: "one_click_select span5", readonly: true |
features/public/public_projects.feature
| @@ -26,6 +26,14 @@ Feature: Public Projects Feature | @@ -26,6 +26,14 @@ Feature: Public Projects Feature | ||
| 26 | Given public empty project "Empty Public Project" | 26 | Given public empty project "Empty Public Project" |
| 27 | When I visit empty project page | 27 | When I visit empty project page |
| 28 | Then I should see empty public project details | 28 | Then I should see empty public project details |
| 29 | + And I should see empty public project details with http clone info | ||
| 30 | + | ||
| 31 | + Scenario: I visit an empty public project page as user | ||
| 32 | + Given I sign in as a user | ||
| 33 | + And public empty project "Empty Public Project" | ||
| 34 | + When I visit empty project page | ||
| 35 | + Then I should see empty public project details | ||
| 36 | + And I should see empty public project details with ssh clone info | ||
| 29 | 37 | ||
| 30 | Scenario: I visit public area as user | 38 | Scenario: I visit public area as user |
| 31 | Given I sign in as a user | 39 | Given I sign in as a user |
| @@ -42,10 +50,15 @@ Feature: Public Projects Feature | @@ -42,10 +50,15 @@ Feature: Public Projects Feature | ||
| 42 | Scenario: I visit public project page | 50 | Scenario: I visit public project page |
| 43 | When I visit project "Community" page | 51 | When I visit project "Community" page |
| 44 | Then I should see project "Community" home page | 52 | Then I should see project "Community" home page |
| 45 | - And I should see a http link to the repository | 53 | + And I should see an http link to the repository |
| 46 | 54 | ||
| 47 | - Scenario: I visit public area as user | 55 | + Scenario: I visit public project page as user |
| 48 | Given I sign in as a user | 56 | Given I sign in as a user |
| 49 | When I visit project "Community" page | 57 | When I visit project "Community" page |
| 50 | Then I should see project "Community" home page | 58 | Then I should see project "Community" home page |
| 51 | - And I should see a ssh link to the repository | 59 | + And I should see an ssh link to the repository |
| 60 | + | ||
| 61 | + Scenario: I visit an empty public project page | ||
| 62 | + Given public empty project "Empty Public Project" | ||
| 63 | + When I visit empty project page | ||
| 64 | + Then I should see empty public project details |
features/steps/public/projects_feature.rb
| @@ -46,6 +46,20 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps | @@ -46,6 +46,20 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps | ||
| 46 | page.should have_content 'Git global setup' | 46 | page.should have_content 'Git global setup' |
| 47 | end | 47 | end |
| 48 | 48 | ||
| 49 | + step 'I should see empty public project details with http clone info' do | ||
| 50 | + project = Project.find_by_name('Empty Public Project') | ||
| 51 | + page.all(:css, '.git-empty .clone').each do |element| | ||
| 52 | + element.text.should include(project.http_url_to_repo) | ||
| 53 | + end | ||
| 54 | + end | ||
| 55 | + | ||
| 56 | + step 'I should see empty public project details with ssh clone info' do | ||
| 57 | + project = Project.find_by_name('Empty Public Project') | ||
| 58 | + page.all(:css, '.git-empty .clone').each do |element| | ||
| 59 | + element.text.should include(project.url_to_repo) | ||
| 60 | + end | ||
| 61 | + end | ||
| 62 | + | ||
| 49 | step 'private project "Enterprise"' do | 63 | step 'private project "Enterprise"' do |
| 50 | create :project, name: 'Enterprise' | 64 | create :project, name: 'Enterprise' |
| 51 | end | 65 | end |
| @@ -84,12 +98,12 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps | @@ -84,12 +98,12 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps | ||
| 84 | end | 98 | end |
| 85 | end | 99 | end |
| 86 | 100 | ||
| 87 | - Then 'I should see a http link to the repository' do | 101 | + step 'I should see an http link to the repository' do |
| 88 | project = Project.find_by_name 'Community' | 102 | project = Project.find_by_name 'Community' |
| 89 | page.should have_field('project_clone', with: project.http_url_to_repo) | 103 | page.should have_field('project_clone', with: project.http_url_to_repo) |
| 90 | end | 104 | end |
| 91 | 105 | ||
| 92 | - Then 'I should see a ssh link to the repository' do | 106 | + step 'I should see an ssh link to the repository' do |
| 93 | project = Project.find_by_name 'Community' | 107 | project = Project.find_by_name 'Community' |
| 94 | page.should have_field('project_clone', with: project.url_to_repo) | 108 | page.should have_field('project_clone', with: project.url_to_repo) |
| 95 | end | 109 | end |