Merge branch 'fix-external-issue-tracker-link' into 'master'

Fix external issue tracker "Issues" link leading to 404s

## What does this MR do?

This MR fixes the redirection to the wrong URL when using an external issue tracker, such as JIRA or Redmine.  a70431f874 modified the behavior to link to the external issue tracker
issues URL instead of the project path URL. This restores the previous behavior.

## Why was this MR needed?

The issues URL often has `:id` associated with it for linking mentioned issues.
For external issue trackers, the project page is the intended target.

## What are the relevant issue numbers?

Closes #21252

Related to #21402

See merge request !6006
This commit is contained in:
Robert Speicher 2016-08-26 00:11:30 +00:00
commit e4336ba0ba
3 changed files with 4 additions and 3 deletions

View file

@ -34,6 +34,7 @@ v 8.11.3 (unreleased)
- Label list shows all issues (opened or closed) with that label
- Don't show resolve conflicts link before MR status is updated
- Don't prevent viewing the MR when git refs for conflicts can't be found on disk
- Fix external issue tracker "Issues" link leading to 404s
v 8.11.2
- Show "Create Merge Request" widget for push events to fork projects on the source project. !5978

View file

@ -212,7 +212,7 @@ class Projects::IssuesController < Projects::ApplicationController
if action_name == 'new'
redirect_to external.new_issue_path
else
redirect_to external.issues_url
redirect_to external.project_path
end
end

View file

@ -8,13 +8,13 @@ describe Projects::IssuesController do
describe "GET #index" do
context 'external issue tracker' do
it 'redirects to the external issue tracker' do
external = double(issues_url: 'https://example.com/issues')
external = double(project_path: 'https://example.com/project')
allow(project).to receive(:external_issue_tracker).and_return(external)
controller.instance_variable_set(:@project, project)
get :index, namespace_id: project.namespace.path, project_id: project
expect(response).to redirect_to('https://example.com/issues')
expect(response).to redirect_to('https://example.com/project')
end
end