提交 1521f467 编写于 作者: J Jason Hollingsworth

Update default public pull url.

This updates the default pull URL for public projects when the user
is not logged in.
上级 26c8b316
...@@ -179,4 +179,12 @@ module ProjectsHelper ...@@ -179,4 +179,12 @@ module ProjectsHelper
title title
end end
def default_url_to_repo
current_user ? @project.url_to_repo : @project.http_url_to_repo
end
def default_clone_protocol
current_user ? "ssh" : "http"
end
end end
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
touch README touch README
git add README git add README
git commit -m 'first commit' git commit -m 'first commit'
%span.clone= "git remote add origin #{@project.url_to_repo}" %span.clone= "git remote add origin #{default_url_to_repo}"
:preserve :preserve
git push -u origin master git push -u origin master
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
%pre.dark %pre.dark
:preserve :preserve
cd existing_git_repo cd existing_git_repo
%span.clone= "git remote add origin #{@project.url_to_repo}" %span.clone= "git remote add origin #{default_url_to_repo}"
:preserve :preserve
git push -u origin master git push -u origin master
......
.git-clone-holder .git-clone-holder
%button{class: "btn #{ current_user ? 'active' : '' }", :"data-clone" => @project.ssh_url_to_repo} SSH %button{class: "btn #{ 'active' if default_clone_protocol == 'ssh' }", :"data-clone" => @project.ssh_url_to_repo} SSH
%button{class: "btn #{ current_user ? '' : 'active' }", :"data-clone" => @project.http_url_to_repo}= gitlab_config.protocol.upcase %button{class: "btn #{ 'active' if default_clone_protocol == 'http' }", :"data-clone" => @project.http_url_to_repo}= gitlab_config.protocol.upcase
= text_field_tag :project_clone, (current_user ? @project.url_to_repo : @project.http_url_to_repo), class: "one_click_select span5", readonly: true = text_field_tag :project_clone, default_url_to_repo, class: "one_click_select span5", readonly: true
...@@ -26,6 +26,14 @@ Feature: Public Projects Feature ...@@ -26,6 +26,14 @@ Feature: Public Projects Feature
Given public empty project "Empty Public Project" Given public empty project "Empty Public Project"
When I visit empty project page When I visit empty project page
Then I should see empty public project details Then I should see empty public project details
And I should see empty public project details with http clone info
Scenario: I visit an empty public project page as user
Given I sign in as a user
And public empty project "Empty Public Project"
When I visit empty project page
Then I should see empty public project details
And I should see empty public project details with ssh clone info
Scenario: I visit public area as user Scenario: I visit public area as user
Given I sign in as a user Given I sign in as a user
...@@ -42,10 +50,15 @@ Feature: Public Projects Feature ...@@ -42,10 +50,15 @@ Feature: Public Projects Feature
Scenario: I visit public project page Scenario: I visit public project page
When I visit project "Community" page When I visit project "Community" page
Then I should see project "Community" home page Then I should see project "Community" home page
And I should see a http link to the repository And I should see an http link to the repository
Scenario: I visit public area as user Scenario: I visit public project page as user
Given I sign in as a user Given I sign in as a user
When I visit project "Community" page When I visit project "Community" page
Then I should see project "Community" home page Then I should see project "Community" home page
And I should see a ssh link to the repository And I should see an ssh link to the repository
Scenario: I visit an empty public project page
Given public empty project "Empty Public Project"
When I visit empty project page
Then I should see empty public project details
...@@ -46,6 +46,20 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps ...@@ -46,6 +46,20 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps
page.should have_content 'Git global setup' page.should have_content 'Git global setup'
end end
step 'I should see empty public project details with http clone info' do
project = Project.find_by_name('Empty Public Project')
page.all(:css, '.git-empty .clone').each do |element|
element.text.should include(project.http_url_to_repo)
end
end
step 'I should see empty public project details with ssh clone info' do
project = Project.find_by_name('Empty Public Project')
page.all(:css, '.git-empty .clone').each do |element|
element.text.should include(project.url_to_repo)
end
end
step 'private project "Enterprise"' do step 'private project "Enterprise"' do
create :project, name: 'Enterprise' create :project, name: 'Enterprise'
end end
...@@ -84,12 +98,12 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps ...@@ -84,12 +98,12 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps
end end
end end
Then 'I should see a http link to the repository' do step 'I should see an http link to the repository' do
project = Project.find_by_name 'Community' project = Project.find_by_name 'Community'
page.should have_field('project_clone', with: project.http_url_to_repo) page.should have_field('project_clone', with: project.http_url_to_repo)
end end
Then 'I should see a ssh link to the repository' do step 'I should see an ssh link to the repository' do
project = Project.find_by_name 'Community' project = Project.find_by_name 'Community'
page.should have_field('project_clone', with: project.url_to_repo) page.should have_field('project_clone', with: project.url_to_repo)
end end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册