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
|
- Fix emoji catgories in the emoji picker
|
||||||
- Execute system web hooks on push to the project
|
- Execute system web hooks on push to the project
|
||||||
- Allow enable/disable push events for system hooks
|
- 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)
|
v 8.6.7 (unreleased)
|
||||||
- Fix vulnerability that made it possible to enumerate private projects belonging to group
|
- 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|
|
- @already_added_projects.each do |project|
|
||||||
%tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"}
|
%tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"}
|
||||||
%td
|
%td
|
||||||
= link_to project.import_source, "https://github.com/#{project.import_source}", target: "_blank"
|
= github_project_link(project.import_source)
|
||||||
%td
|
%td
|
||||||
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
= link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
|
||||||
%td.job-status
|
%td.job-status
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
- @repos.each do |repo|
|
- @repos.each do |repo|
|
||||||
%tr{id: "repo_#{repo.id}"}
|
%tr{id: "repo_#{repo.id}"}
|
||||||
%td
|
%td
|
||||||
= link_to repo.full_name, "https://github.com/#{repo.full_name}", target: "_blank"
|
= github_project_link(repo.full_name)
|
||||||
%td.import-target
|
%td.import-target
|
||||||
= repo.full_name
|
= repo.full_name
|
||||||
%td.import-actions.job-status
|
%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