[BUG] Render references to cross-repo issues with external issues

- If you have the external issue setting enabled, any reference would
have been rendered as an external issue, however this shouldn't be
happening to references that refer to issues in other repositories.
- Unit test added.
This commit is contained in:
Gusted 2024-08-07 03:19:12 +02:00
parent 3bf87d157e
commit 05e163aaf3
No known key found for this signature in database
GPG key ID: FD821B732837125F
2 changed files with 17 additions and 1 deletions

View file

@ -867,7 +867,7 @@ func issueIndexPatternProcessor(ctx *RenderContext, node *html.Node) {
var link *html.Node
reftext := node.Data[ref.RefLocation.Start:ref.RefLocation.End]
if hasExtTrackFormat && !ref.IsPull {
if hasExtTrackFormat && !ref.IsPull && ref.Owner == "" {
ctx.Metas["index"] = ref.Issue
res, err := vars.Expand(ctx.Metas["format"], ctx.Metas)

View file

@ -342,6 +342,22 @@ func TestRender_AutoLink(t *testing.T) {
test(tmp, "<a href=\""+tmp+"\" class=\"commit\"><code class=\"nohighlight\">d8a994ef24 (diff-2)</code></a>")
}
func TestRender_IssueIndexPatternRef(t *testing.T) {
setting.AppURL = TestAppURL
test := func(input, expected string) {
var buf strings.Builder
err := postProcess(&RenderContext{
Ctx: git.DefaultContext,
Metas: numericMetas,
}, []processor{issueIndexPatternProcessor}, strings.NewReader(input), &buf)
require.NoError(t, err)
assert.Equal(t, expected, buf.String(), "input=%q", input)
}
test("alan-turin/Enigma-cryptanalysis#1", `<a href="/alan-turin/enigma-cryptanalysis/issues/1" class="ref-issue">alan-turin/Enigma-cryptanalysis#1</a>`)
}
func TestRender_FullIssueURLs(t *testing.T) {
setting.AppURL = TestAppURL