Fix hooks for web based events with external issue references
The creation of cross references for external issues (which would fail) is now prevented. Fixes #1650, GH-9333.
This commit is contained in:
parent
5c6d83b8e7
commit
92bb845e1e
3 changed files with 13 additions and 1 deletions
|
@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
|
|||
|
||||
v 7.12.0 (unreleased)
|
||||
- Update oauth button logos for Twitter and Google to recommended assets
|
||||
- Fix hooks for web based events with external issue references (Daniel Gerhardt)
|
||||
- Update browser gem to version 0.8.0 for IE11 support (Stan Hu)
|
||||
- Fix timeout when rendering file with thousands of lines.
|
||||
- Add "Remember me" checkbox to LDAP signin form.
|
||||
|
|
|
@ -212,13 +212,15 @@ class SystemNoteService
|
|||
# Check if a cross-reference is disallowed
|
||||
#
|
||||
# This method prevents adding a "mentioned in !1" note on every single commit
|
||||
# in a merge request.
|
||||
# in a merge request. Additionally, it prevents the creation of references to
|
||||
# external issues (which would fail).
|
||||
#
|
||||
# noteable - Noteable object being referenced
|
||||
# mentioner - Mentionable object
|
||||
#
|
||||
# Returns Boolean
|
||||
def self.cross_reference_disallowed?(noteable, mentioner)
|
||||
return true if noteable.is_a?(ExternalIssue)
|
||||
return false unless mentioner.is_a?(MergeRequest)
|
||||
return false unless noteable.is_a?(Commit)
|
||||
|
||||
|
|
|
@ -338,6 +338,15 @@ describe SystemNoteService do
|
|||
to be_falsey
|
||||
end
|
||||
end
|
||||
|
||||
context 'when notable is an ExternalIssue' do
|
||||
let(:noteable) { ExternalIssue.new('EXT-1234', project) }
|
||||
it 'is truthy' do
|
||||
mentioner = noteable.dup
|
||||
expect(described_class.cross_reference_disallowed?(noteable, mentioner)).
|
||||
to be_truthy
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.cross_reference_exists?' do
|
||||
|
|
Loading…
Reference in a new issue