Commit 160023d5 authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab-ce master

parents 8bc204fb 4bcb71b1
...@@ -178,7 +178,7 @@ class Issue < ApplicationRecord ...@@ -178,7 +178,7 @@ class Issue < ApplicationRecord
end end
def moved? def moved?
!moved_to.nil? !moved_to_id.nil?
end end
def can_move?(user, to_project = nil) def can_move?(user, to_project = nil)
......
---
title: Use moved instead of closed in issue references
merge_request: 32277
author: juliette-derancourt
type: changed
...@@ -212,22 +212,25 @@ group, this can be achieved quite easily with the API. ...@@ -212,22 +212,25 @@ group, this can be achieved quite easily with the API.
First, find the ID of the projects you're interested in, by either listing all First, find the ID of the projects you're interested in, by either listing all
projects: projects:
``` ```bash
curl --header 'PRIVATE-TOKEN: <your_access_token>' https://gitlab.example.com/api/v4/projects curl --header 'PRIVATE-TOKEN: <your_access_token>' https://gitlab.example.com/api/v4/projects
``` ```
Or finding the ID of a group and then listing all projects in that group: Or finding the ID of a group:
``` ```bash
curl --header 'PRIVATE-TOKEN: <your_access_token>' https://gitlab.example.com/api/v4/groups curl --header 'PRIVATE-TOKEN: <your_access_token>' https://gitlab.example.com/api/v4/groups
```
# For group 1234: Then listing all projects in that group (for example, group 1234):
```bash
curl --header 'PRIVATE-TOKEN: <your_access_token>' https://gitlab.example.com/api/v4/groups/1234 curl --header 'PRIVATE-TOKEN: <your_access_token>' https://gitlab.example.com/api/v4/groups/1234
``` ```
With those IDs, add the same deploy key to all: With those IDs, add the same deploy key to all:
``` ```bash
for project_id in 321 456 987; do for project_id in 321 456 987; do
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" \ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" \
--data '{"title": "my key", "key": "ssh-rsa AAAA..."}' https://gitlab.example.com/api/v4/projects/${project_id}/deploy_keys --data '{"title": "my key", "key": "ssh-rsa AAAA..."}' https://gitlab.example.com/api/v4/projects/${project_id}/deploy_keys
......
...@@ -21,7 +21,8 @@ module Banzai ...@@ -21,7 +21,8 @@ module Banzai
next if !can_read_cross_project? && cross_reference?(issuable) next if !can_read_cross_project? && cross_reference?(issuable)
if VISIBLE_STATES.include?(issuable.state) && issuable_reference?(node.inner_html, issuable) if VISIBLE_STATES.include?(issuable.state) && issuable_reference?(node.inner_html, issuable)
node.content += " (#{issuable.state})" state = moved_issue?(issuable) ? s_("IssuableStatus|moved") : issuable.state
node.content += " (#{state})"
end end
end end
...@@ -30,6 +31,10 @@ module Banzai ...@@ -30,6 +31,10 @@ module Banzai
private private
def moved_issue?(issuable)
issuable.instance_of?(Issue) && issuable.moved?
end
def issuable_reference?(text, issuable) def issuable_reference?(text, issuable)
CGI.unescapeHTML(text) == issuable.reference_link_text(project || group) CGI.unescapeHTML(text) == issuable.reference_link_text(project || group)
end end
......
...@@ -131,6 +131,14 @@ describe Banzai::Filter::IssuableStateFilter do ...@@ -131,6 +131,14 @@ describe Banzai::Filter::IssuableStateFilter do
expect(doc.css('a').last.text).to eq("#{closed_issue.to_reference} (closed)") expect(doc.css('a').last.text).to eq("#{closed_issue.to_reference} (closed)")
end end
it 'appends state to moved issue references' do
moved_issue = create(:issue, :closed, project: project, moved_to: create_issue(:opened))
link = create_link(moved_issue.to_reference, issue: moved_issue.id, reference_type: 'issue')
doc = filter(link, context)
expect(doc.css('a').last.text).to eq("#{moved_issue.to_reference} (moved)")
end
end end
context 'for merge request references' do context 'for merge request references' do
......
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