Skip to content

Commit 5992647

Browse files
author
Gusted
committed
Merge pull request 'Fix /api/v1/{owner}/{repo}/issue_templates' (go-gitea#2292) from algernon/forgejo:b/api/issue_templates-fix into forgejo-dependency
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/2292 Reviewed-by: Earl Warren <[email protected]> Reviewed-by: Gusted <[email protected]> Reviewed-by: crystal <[email protected]>
2 parents 030cdd6 + be8d164 commit 5992647

File tree

2 files changed

+65
-5
lines changed

2 files changed

+65
-5
lines changed

routers/api/v1/repo/repo.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,11 +1174,7 @@ func GetIssueTemplates(ctx *context.APIContext) {
11741174
// "$ref": "#/responses/IssueTemplates"
11751175
// "404":
11761176
// "$ref": "#/responses/notFound"
1177-
ret, err := issue.GetTemplatesFromDefaultBranch(ctx.Repo.Repository, ctx.Repo.GitRepo)
1178-
if err != nil {
1179-
ctx.Error(http.StatusInternalServerError, "GetTemplatesFromDefaultBranch", err)
1180-
return
1181-
}
1177+
ret, _ := issue.GetTemplatesFromDefaultBranch(ctx.Repo.Repository, ctx.Repo.GitRepo)
11821178
ctx.JSON(http.StatusOK, ret)
11831179
}
11841180

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Copyright 2024 The Forgejo Authors c/o Codeberg e.V.. All rights reserved.
2+
// SPDX-License-Identifier: MIT
3+
4+
package integration
5+
6+
import (
7+
"fmt"
8+
"net/http"
9+
"net/url"
10+
"testing"
11+
12+
repo_model "code.gitea.io/gitea/models/repo"
13+
"code.gitea.io/gitea/models/unittest"
14+
user_model "code.gitea.io/gitea/models/user"
15+
api "code.gitea.io/gitea/modules/structs"
16+
"code.gitea.io/gitea/tests"
17+
18+
"github.com/stretchr/testify/assert"
19+
)
20+
21+
func TestAPIIssueTemplateList(t *testing.T) {
22+
onGiteaRun(t, func(t *testing.T, u *url.URL) {
23+
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
24+
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID})
25+
26+
t.Run("no templates", func(t *testing.T) {
27+
defer tests.PrintCurrentTest(t)()
28+
29+
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/issue_templates", repo.FullName()))
30+
resp := MakeRequest(t, req, http.StatusOK)
31+
var issueTemplates []*api.IssueTemplate
32+
DecodeJSON(t, resp, &issueTemplates)
33+
assert.Empty(t, issueTemplates)
34+
})
35+
36+
t.Run("existing template", func(t *testing.T) {
37+
defer tests.PrintCurrentTest(t)()
38+
defer func() {
39+
deleteFileInBranch(user, repo, "ISSUE_TEMPLATE/test.md", repo.DefaultBranch)
40+
}()
41+
42+
err := createOrReplaceFileInBranch(user, repo, "ISSUE_TEMPLATE/test.md", repo.DefaultBranch,
43+
`---
44+
name: 'Template Name'
45+
about: 'This template is for testing!'
46+
title: '[TEST] '
47+
ref: 'main'
48+
---
49+
50+
This is the template!`)
51+
assert.NoError(t, err)
52+
53+
req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/issue_templates", repo.FullName()))
54+
resp := MakeRequest(t, req, http.StatusOK)
55+
var issueTemplates []*api.IssueTemplate
56+
DecodeJSON(t, resp, &issueTemplates)
57+
assert.Len(t, issueTemplates, 1)
58+
assert.Equal(t, "Template Name", issueTemplates[0].Name)
59+
assert.Equal(t, "This template is for testing!", issueTemplates[0].About)
60+
assert.Equal(t, "refs/heads/main", issueTemplates[0].Ref)
61+
assert.Equal(t, "ISSUE_TEMPLATE/test.md", issueTemplates[0].FileName)
62+
})
63+
})
64+
}

0 commit comments

Comments
 (0)