// Copyright 2020 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. package repo import ( "net/http" "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/convert" ) // GetReleaseTag get a single release of a repository by its tagname func GetReleaseTag(ctx *context.APIContext) { // swagger:operation GET /repos/{owner}/{repo}/releases/tags/{tag} repository repoGetReleaseTag // --- // summary: Get a release by tag name // 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 // - name: tag // in: path // description: tagname of the release to get // type: string // required: true // responses: // "200": // "$ref": "#/responses/Release" // "404": // "$ref": "#/responses/notFound" tag := ctx.Params(":tag") release, err := models.GetRelease(ctx.Repo.Repository.ID, tag) if err != nil { if models.IsErrReleaseNotExist(err) { ctx.Error(http.StatusNotFound, "GetRelease", err) return } ctx.Error(http.StatusInternalServerError, "GetRelease", err) return } if err := release.LoadAttributes(); err != nil { ctx.Error(http.StatusInternalServerError, "LoadAttributes", err) return } ctx.JSON(http.StatusOK, convert.ToRelease(release)) }