mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Respect default merge message syntax when parsing item references (#15772)
* Respect merge message structure for parsing item references Signed-off-by: JustusBunsi <61625851+justusbunsi@users.noreply.github.com> Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
		@@ -29,7 +29,7 @@ var (
 | 
				
			|||||||
	// mentionPattern matches all mentions in the form of "@user" or "@org/team"
 | 
						// mentionPattern matches all mentions in the form of "@user" or "@org/team"
 | 
				
			||||||
	mentionPattern = regexp.MustCompile(`(?:\s|^|\(|\[)(@[0-9a-zA-Z-_]+|@[0-9a-zA-Z-_]+\/?[0-9a-zA-Z-_]+|@[0-9a-zA-Z-_][0-9a-zA-Z-_.]+\/?[0-9a-zA-Z-_.]+[0-9a-zA-Z-_])(?:\s|[:,;.?!]\s|[:,;.?!]?$|\)|\])`)
 | 
						mentionPattern = regexp.MustCompile(`(?:\s|^|\(|\[)(@[0-9a-zA-Z-_]+|@[0-9a-zA-Z-_]+\/?[0-9a-zA-Z-_]+|@[0-9a-zA-Z-_][0-9a-zA-Z-_.]+\/?[0-9a-zA-Z-_.]+[0-9a-zA-Z-_])(?:\s|[:,;.?!]\s|[:,;.?!]?$|\)|\])`)
 | 
				
			||||||
	// issueNumericPattern matches string that references to a numeric issue, e.g. #1287
 | 
						// issueNumericPattern matches string that references to a numeric issue, e.g. #1287
 | 
				
			||||||
	issueNumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[)([#!][0-9]+)(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`)
 | 
						issueNumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[|\')([#!][0-9]+)(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`)
 | 
				
			||||||
	// issueAlphanumericPattern matches string that references to an alphanumeric issue, e.g. ABC-1234
 | 
						// issueAlphanumericPattern matches string that references to an alphanumeric issue, e.g. ABC-1234
 | 
				
			||||||
	issueAlphanumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[)([A-Z]{1,10}-[1-9][0-9]*)(?:\s|$|\)|\]|:|\.(\s|$))`)
 | 
						issueAlphanumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[)([A-Z]{1,10}-[1-9][0-9]*)(?:\s|$|\)|\]|:|\.(\s|$))`)
 | 
				
			||||||
	// crossReferenceIssueNumericPattern matches string that references a numeric issue in a different repository
 | 
						// crossReferenceIssueNumericPattern matches string that references a numeric issue in a different repository
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -197,6 +197,13 @@ func TestFindAllIssueReferences(t *testing.T) {
 | 
				
			|||||||
				{200, "user3", "repo4", "200", false, XRefActionNone, &RefSpan{Start: 5, End: 20}, nil, ""},
 | 
									{200, "user3", "repo4", "200", false, XRefActionNone, &RefSpan{Start: 5, End: 20}, nil, ""},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"Merge pull request '#12345 My fix for a bug' (!1337) from feature-branch into main",
 | 
				
			||||||
 | 
								[]testResult{
 | 
				
			||||||
 | 
									{12345, "", "", "12345", false, XRefActionNone, &RefSpan{Start: 20, End: 26}, nil, ""},
 | 
				
			||||||
 | 
									{1337, "", "", "1337", true, XRefActionNone, &RefSpan{Start: 46, End: 51}, nil, ""},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"Which abc. #9434 same as above",
 | 
								"Which abc. #9434 same as above",
 | 
				
			||||||
			[]testResult{
 | 
								[]testResult{
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user