Commit f1e778be authored by Robert Speicher's avatar Robert Speicher

Merge branch 'imported-ghe-project-names-links-to-github' into 'master'

Fix GitHub project's link in the import page when provider has a custom URL

Closes gitlab-org/gitlab-ee#478

See merge request !3803
parents 55380e69 835acf22
...@@ -99,6 +99,7 @@ v 8.7.0 (unreleased) ...@@ -99,6 +99,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
......
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 @@ ...@@ -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 @@ ...@@ -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
......
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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment