Fix GitHub project's link on import page when provider has a custom URL
This commit is contained in:
parent
2011f02b5d
commit
835acf22d4
4 changed files with 46 additions and 2 deletions
|
@ -94,6 +94,7 @@ v 8.7.0 (unreleased)
|
|||
- Fix emoji catgories in the emoji picker
|
||||
- Execute system web hooks on push to the project
|
||||
- Allow enable/disable push events for system hooks
|
||||
- Fix GitHub project's link in the import page when provider has a custom URL
|
||||
|
||||
v 8.6.7 (unreleased)
|
||||
- Fix vulnerability that made it possible to enumerate private projects belonging to group
|
||||
|
|
18
app/helpers/import_helper.rb
Normal file
18
app/helpers/import_helper.rb
Normal file
|
@ -0,0 +1,18 @@
|
|||
module ImportHelper
|
||||
def github_project_link(path_with_namespace)
|
||||
link_to path_with_namespace, github_project_url(path_with_namespace), target: '_blank'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def github_project_url(path_with_namespace)
|
||||
"#{github_root_url}/#{path_with_namespace}"
|
||||
end
|
||||
|
||||
def github_root_url
|
||||
return @github_url if defined?(@github_url)
|
||||
|
||||
provider = Gitlab.config.omniauth.providers.find { |p| p.name == 'github' }
|
||||
@github_url = provider.fetch('url', 'https://github.com') if provider
|
||||
end
|
||||
end
|
|
@ -26,7 +26,7 @@
|
|||
- @already_added_projects.each do |project|
|
||||
%tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"}
|
||||
%td
|
||||
= link_to project.import_source, "https://github.com/#{project.import_source}", target: "_blank"
|
||||
= github_project_link(project.import_source)
|
||||
%td
|
||||
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
||||
%td.job-status
|
||||
|
@ -43,7 +43,7 @@
|
|||
- @repos.each do |repo|
|
||||
%tr{id: "repo_#{repo.id}"}
|
||||
%td
|
||||
= link_to repo.full_name, "https://github.com/#{repo.full_name}", target: "_blank"
|
||||
= github_project_link(repo.full_name)
|
||||
%td.import-target
|
||||
= repo.full_name
|
||||
%td.import-actions.job-status
|
||||
|
|
25
spec/helpers/import_helper_spec.rb
Normal file
25
spec/helpers/import_helper_spec.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
require 'rails_helper'
|
||||
|
||||
describe ImportHelper do
|
||||
describe '#github_project_link' do
|
||||
context 'when provider does not specify a custom URL' do
|
||||
it 'uses default GitHub URL' do
|
||||
allow(Gitlab.config.omniauth).to receive(:providers).
|
||||
and_return([Settingslogic.new('name' => 'github')])
|
||||
|
||||
expect(helper.github_project_link('octocat/Hello-World')).
|
||||
to include('href="https://github.com/octocat/Hello-World"')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when provider specify a custom URL' do
|
||||
it 'uses custom URL' do
|
||||
allow(Gitlab.config.omniauth).to receive(:providers).
|
||||
and_return([Settingslogic.new('name' => 'github', 'url' => 'https://github.company.com')])
|
||||
|
||||
expect(helper.github_project_link('octocat/Hello-World')).
|
||||
to include('href="https://github.company.com/octocat/Hello-World"')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue