BigW Consortium Gitlab

Commit 17296b93 by Dmitriy Zaporozhets

Merge branch 'fix_url_links_for_gitlab_issue_tracker' into 'master'

Using gitlab url to build links for gitlab issue tracker and add a spec. Fix for https://gitlab.com/gitlab-org/gitlab-ce/issues/1107 This needs to go to master as the paths changed since rails upgrade Fix for stable branch is in https://dev.gitlab.org/gitlab/gitlabhq/merge_requests/1574/ See merge request !1573
parents 24c8381d b0dfe434
...@@ -27,14 +27,20 @@ class GitlabIssueTrackerService < IssueTrackerService ...@@ -27,14 +27,20 @@ class GitlabIssueTrackerService < IssueTrackerService
end end
def project_url def project_url
namespace_project_issues_path(project.namespace, project) "#{gitlab_url}#{namespace_project_issues_path(project.namespace, project)}"
end end
def new_issue_url def new_issue_url
new_namespace_project_issue_path namespace_id: project.namespace, project_id: project "#{gitlab_url}#{new_namespace_project_issue_path(namespace_id: project.namespace, project_id: project)}"
end end
def issue_url(iid) def issue_url(iid)
"#{Gitlab.config.gitlab.url}#{namespace_project_issue_path(namespace_id: project.namespace, project_id: project, id: iid)}" "#{gitlab_url}#{namespace_project_issue_path(namespace_id: project.namespace, project_id: project, id: iid)}"
end
private
def gitlab_url
Gitlab.config.gitlab.relative_url_root.chomp("/") if Gitlab.config.gitlab.relative_url_root
end end
end end
...@@ -269,16 +269,23 @@ Gitlab::Application.routes.draw do ...@@ -269,16 +269,23 @@ Gitlab::Application.routes.draw do
post '/preview/*id', to: 'blob#preview', constraints: { id: /.+/ }, as: 'preview_blob' post '/preview/*id', to: 'blob#preview', constraints: { id: /.+/ }, as: 'preview_blob'
scope do scope do
get('/blob/*id/diff', get(
to: 'blob#diff', '/blob/*id/diff',
constraints: { id: /.+/, format: false }, to: 'blob#diff',
as: :blob_diff) constraints: { id: /.+/, format: false },
get('/blob/*id', as: :blob_diff
to: 'blob#show', )
constraints: { id: /.+/, format: false }, as: :blob) get(
delete('/blob/*id', '/blob/*id',
to: 'blob#destroy', to: 'blob#show',
constraints: { id: /.+/, format: false }) constraints: { id: /.+/, format: false },
as: :blob
)
delete(
'/blob/*id',
to: 'blob#destroy',
constraints: { id: /.+/, format: false }
)
end end
scope do scope do
......
...@@ -474,7 +474,7 @@ describe GitlabMarkdownHelper do ...@@ -474,7 +474,7 @@ describe GitlabMarkdownHelper do
# First issue link # First issue link
expect(groups[1]). expect(groups[1]).
to match(/href="#{namespace_project_issue_url(project.namespace, project, issues[0])}"/) to match(/href="#{namespace_project_issue_path(project.namespace, project, issues[0])}"/)
expect(groups[1]).to match(/##{issues[0].iid}$/) expect(groups[1]).to match(/##{issues[0].iid}$/)
# Internal commit link # Internal commit link
...@@ -483,7 +483,7 @@ describe GitlabMarkdownHelper do ...@@ -483,7 +483,7 @@ describe GitlabMarkdownHelper do
# Second issue link # Second issue link
expect(groups[3]). expect(groups[3]).
to match(/href="#{namespace_project_issue_url(project.namespace, project, issues[1])}"/) to match(/href="#{namespace_project_issue_path(project.namespace, project, issues[1])}"/)
expect(groups[3]).to match(/##{issues[1].iid}$/) expect(groups[3]).to match(/##{issues[1].iid}$/)
# Trailing commit link # Trailing commit link
...@@ -611,7 +611,7 @@ describe GitlabMarkdownHelper do ...@@ -611,7 +611,7 @@ describe GitlabMarkdownHelper do
end end
it "should generate absolute urls for refs" do it "should generate absolute urls for refs" do
expect(markdown("##{issue.iid}")).to include(namespace_project_issue_url(project.namespace, project, issue)) expect(markdown("##{issue.iid}")).to include(namespace_project_issue_path(project.namespace, project, issue))
end end
it "should generate absolute urls for emoji" do it "should generate absolute urls for emoji" do
......
# == Schema Information
#
# Table name: services
#
# id :integer not null, primary key
# type :string(255)
# title :string(255)
# project_id :integer
# created_at :datetime
# updated_at :datetime
# active :boolean default(FALSE), not null
# properties :text
# template :boolean default(FALSE)
#
require 'spec_helper'
describe GitlabIssueTrackerService do
describe "Associations" do
it { is_expected.to belong_to :project }
it { is_expected.to have_one :service_hook }
end
describe 'project and issue urls' do
let(:project) { create(:project) }
context 'with absolute urls' do
before do
@service = project.create_gitlab_issue_tracker_service(active: true)
end
after do
@service.destroy!
end
it 'should give the correct path' do
expect(@service.project_url).to eq("/#{project.path_with_namespace}/issues")
expect(@service.new_issue_url).to eq("/#{project.path_with_namespace}/issues/new")
expect(@service.issue_url(432)).to eq("/#{project.path_with_namespace}/issues/432")
end
end
context 'with enabled relative urls' do
before do
Settings.gitlab.stub(:relative_url_root).and_return("/gitlab/root")
@service = project.create_gitlab_issue_tracker_service(active: true)
end
after do
@service.destroy!
end
it 'should give the correct path' do
expect(@service.project_url).to eq("/gitlab/root/#{project.path_with_namespace}/issues")
expect(@service.new_issue_url).to eq("/gitlab/root/#{project.path_with_namespace}/issues/new")
expect(@service.issue_url(432)).to eq("/gitlab/root/#{project.path_with_namespace}/issues/432")
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