mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-30 19:08:37 +00:00 
			
		
		
		
	Use correct captured group range when parsing cross-reference (#22672)
Fixes #22666 (Replace #22668) Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: KN4CK3R <admin@oldschoolhack.me> Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
		| @@ -35,12 +35,12 @@ var ( | |||||||
| 	// 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 | ||||||
| 	// e.g. gogits/gogs#12345 | 	// e.g. org/repo#12345 | ||||||
| 	crossReferenceIssueNumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[)([0-9a-zA-Z-_\.]+/[0-9a-zA-Z-_\.]+[#!][0-9]+)(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`) | 	crossReferenceIssueNumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[)([0-9a-zA-Z-_\.]+/[0-9a-zA-Z-_\.]+[#!][0-9]+)(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`) | ||||||
| 	// crossReferenceCommitPattern matches a string that references a commit in a different repository | 	// crossReferenceCommitPattern matches a string that references a commit in a different repository | ||||||
| 	// e.g. go-gitea/gitea@d8a994ef, go-gitea/gitea@d8a994ef243349f321568f9e36d5c3f444b99cae (7-40 characters) | 	// e.g. go-gitea/gitea@d8a994ef, go-gitea/gitea@d8a994ef243349f321568f9e36d5c3f444b99cae (7-40 characters) | ||||||
| 	crossReferenceCommitPattern = regexp.MustCompile(`(?:\s|^|\(|\[)([0-9a-zA-Z-_\.]+)/([0-9a-zA-Z-_\.]+)@([0-9a-f]{7,40})(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`) | 	crossReferenceCommitPattern = regexp.MustCompile(`(?:\s|^|\(|\[)([0-9a-zA-Z-_\.]+)/([0-9a-zA-Z-_\.]+)@([0-9a-f]{7,40})(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`) | ||||||
| 	// spaceTrimmedPattern let's us find the trailing space | 	// spaceTrimmedPattern let's find the trailing space | ||||||
| 	spaceTrimmedPattern = regexp.MustCompile(`(?:.*[0-9a-zA-Z-_])\s`) | 	spaceTrimmedPattern = regexp.MustCompile(`(?:.*[0-9a-zA-Z-_])\s`) | ||||||
| 	// timeLogPattern matches string for time tracking | 	// timeLogPattern matches string for time tracking | ||||||
| 	timeLogPattern = regexp.MustCompile(`(?:\s|^|\(|\[)(@([0-9]+([\.,][0-9]+)?(w|d|m|h))+)(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`) | 	timeLogPattern = regexp.MustCompile(`(?:\s|^|\(|\[)(@([0-9]+([\.,][0-9]+)?(w|d|m|h))+)(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`) | ||||||
| @@ -365,7 +365,7 @@ func FindRenderizableCommitCrossReference(content string) (bool, *RenderizableRe | |||||||
| 		Owner:       content[m[2]:m[3]], | 		Owner:       content[m[2]:m[3]], | ||||||
| 		Name:        content[m[4]:m[5]], | 		Name:        content[m[4]:m[5]], | ||||||
| 		CommitSha:   content[m[6]:m[7]], | 		CommitSha:   content[m[6]:m[7]], | ||||||
| 		RefLocation: &RefSpan{Start: m[0], End: m[1]}, | 		RefLocation: &RefSpan{Start: m[2], End: m[7]}, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -352,7 +352,7 @@ func TestFindRenderizableCommitCrossReference(t *testing.T) { | |||||||
| 				Owner:       "go-gitea", | 				Owner:       "go-gitea", | ||||||
| 				Name:        "gitea", | 				Name:        "gitea", | ||||||
| 				CommitSha:   "abcd1234", | 				CommitSha:   "abcd1234", | ||||||
| 				RefLocation: &RefSpan{Start: 4, End: 29}, | 				RefLocation: &RefSpan{Start: 5, End: 28}, | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user