From 26c4a049da178993e5ccddcb50e7edc70a6bde5d Mon Sep 17 00:00:00 2001 From: John Olheiser Date: Fri, 11 Sep 2020 09:48:39 -0500 Subject: Issue templates directory (#11450) * Issue templates Signed-off-by: jolheiser * Add some comments, appease the linter Signed-off-by: jolheiser * Add docs and re-use dir candidates Signed-off-by: jolheiser * Add default labels to issue templates Signed-off-by: jolheiser * Generate swagger Signed-off-by: jolheiser * Suggested changes Signed-off-by: jolheiser * Update issue.go * Suggestions Signed-off-by: jolheiser * Extract metadata from legacy if possible Signed-off-by: jolheiser Co-authored-by: Lunny Xiao Co-authored-by: techknowlogick --- routers/api/v1/api.go | 1 + routers/api/v1/repo/repo.go | 25 +++++++++++++++++++++++++ routers/api/v1/swagger/issue.go | 7 +++++++ 3 files changed, 33 insertions(+) (limited to 'routers/api/v1') diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index 9e85625770..8b3a7545c6 100644 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -866,6 +866,7 @@ func RegisterRoutes(m *macaron.Macaron) { Delete(reqToken(), repo.DeleteTopic) }, reqAdmin()) }, reqAnyRepoReader()) + m.Get("/issue_templates", context.ReferencesGitRepo(false), repo.GetIssueTemplates) m.Get("/languages", reqRepoReader(models.UnitTypeCode), repo.GetLanguages) }, repoAssignment()) }) diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index 5ebc7f251b..35062500f7 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -812,3 +812,28 @@ func Delete(ctx *context.APIContext) { log.Trace("Repository deleted: %s/%s", owner.Name, repo.Name) ctx.Status(http.StatusNoContent) } + +// GetIssueTemplates returns the issue templates for a repository +func GetIssueTemplates(ctx *context.APIContext) { + // swagger:operation GET /repos/{owner}/{repo}/issue_templates repository repoGetIssueTemplates + // --- + // summary: Get available issue templates for a repository + // produces: + // - application/json + // parameters: + // - name: owner + // in: path + // description: owner of the repo + // type: string + // required: true + // - name: repo + // in: path + // description: name of the repo + // type: string + // required: true + // responses: + // "200": + // "$ref": "#/responses/IssueTemplates" + + ctx.JSON(http.StatusOK, ctx.IssueTemplatesFromDefaultBranch()) +} diff --git a/routers/api/v1/swagger/issue.go b/routers/api/v1/swagger/issue.go index b12ea0096a..0f2f572020 100644 --- a/routers/api/v1/swagger/issue.go +++ b/routers/api/v1/swagger/issue.go @@ -85,6 +85,13 @@ type swaggerIssueDeadline struct { Body api.IssueDeadline `json:"body"` } +// IssueTemplates +// swagger:response IssueTemplates +type swaggerIssueTemplates struct { + // in:body + Body []api.IssueTemplate `json:"body"` +} + // StopWatch // swagger:response StopWatch type swaggerResponseStopWatch struct { -- cgit v1.2.3