Commit 7c824b91 authored by Rémy Coutable's avatar Rémy Coutable Committed by Rémy Coutable

Merge branch '20527-fork-commits-have-impact-on-original-project' into 'master'

Don’t close issues on original project

Closes #20527 -> https://gitlab.com/gitlab-org/gitlab-ce/issues/20527

See merge request !1981
Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 9d69315d
Please view this file on the master branch, on stable branches it's out of date. Please view this file on the master branch, on stable branches it's out of date.
v 8.10.4 (unreleased) v 8.10.4 (unreleased)
- Don't close referenced upstream issues from a forked project.
v 8.10.3 v 8.10.3
- Fix Import/Export issue importing milestones and labels not associated properly. !5426 - Fix Import/Export issue importing milestones and labels not associated properly. !5426
......
...@@ -22,7 +22,9 @@ module Gitlab ...@@ -22,7 +22,9 @@ module Gitlab
@extractor.analyze(closing_statements.join(" ")) @extractor.analyze(closing_statements.join(" "))
@extractor.issues @extractor.issues.reject do |issue|
@extractor.project.forked_from?(issue.project) # Don't extract issues on original project
end
end end
end end
end end
...@@ -3,10 +3,12 @@ require 'spec_helper' ...@@ -3,10 +3,12 @@ require 'spec_helper'
describe Gitlab::ClosingIssueExtractor, lib: true do describe Gitlab::ClosingIssueExtractor, lib: true do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:project2) { create(:project) } let(:project2) { create(:project) }
let(:forked_project) { Projects::ForkService.new(project, project.creator).execute }
let(:issue) { create(:issue, project: project) } let(:issue) { create(:issue, project: project) }
let(:issue2) { create(:issue, project: project2) } let(:issue2) { create(:issue, project: project2) }
let(:reference) { issue.to_reference } let(:reference) { issue.to_reference }
let(:cross_reference) { issue2.to_reference(project) } let(:cross_reference) { issue2.to_reference(project) }
let(:fork_cross_reference) { issue.to_reference(forked_project) }
subject { described_class.new(project, project.creator) } subject { described_class.new(project, project.creator) }
...@@ -278,6 +280,15 @@ describe Gitlab::ClosingIssueExtractor, lib: true do ...@@ -278,6 +280,15 @@ describe Gitlab::ClosingIssueExtractor, lib: true do
end end
end end
context "with a cross-project fork reference" do
subject { described_class.new(forked_project, forked_project.creator) }
it do
message = "Closes #{fork_cross_reference}"
expect(subject.closed_by_message(message)).to be_empty
end
end
context "with an invalid URL" do context "with an invalid URL" do
it do it do
message = "Closes https://google.com#{urls.namespace_project_issue_path(issue2.project.namespace, issue2.project, issue2)}" message = "Closes https://google.com#{urls.namespace_project_issue_path(issue2.project.namespace, issue2.project, issue2)}"
......
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