From 3019b5ca6e5fce5a527061e98cf745867a356ed2 Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 30 Nov 2022 18:19:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=9C=80=E5=90=8E?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=8F=91=E8=A1=8C=E7=89=88=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/hat/hat.go | 3 ++ routers/hat/repo/{commitgs.go => commits.go} | 0 routers/hat/repo/release.go | 39 ++++++++++++++++++++ 3 files changed, 42 insertions(+) rename routers/hat/repo/{commitgs.go => commits.go} (100%) create mode 100644 routers/hat/repo/release.go diff --git a/routers/hat/hat.go b/routers/hat/hat.go index e24c7f9..1b0895c 100644 --- a/routers/hat/hat.go +++ b/routers/hat/hat.go @@ -86,6 +86,9 @@ func Routers() *web.Route { m.Combo("").Get(repo.GetPullRequest) }) }, mustAllowPulls, reqRepoReader(unit_model.TypeCode), context.ReferencesGitRepo()) + m.Group("/releases", func() { + m.Get("/latest", context.ReferencesGitRepo(), repo.GetLatestRelease) + }, reqRepoReader(unit.TypeReleases)) }, repoAssignment()) }) m.Post("/orgs", reqToken(), bind(gitea_api.CreateOrgOption{}), org.Create) diff --git a/routers/hat/repo/commitgs.go b/routers/hat/repo/commits.go similarity index 100% rename from routers/hat/repo/commitgs.go rename to routers/hat/repo/commits.go diff --git a/routers/hat/repo/release.go b/routers/hat/repo/release.go new file mode 100644 index 0000000..a79a5dc --- /dev/null +++ b/routers/hat/repo/release.go @@ -0,0 +1,39 @@ +package repo + +import ( + "fmt" + "net/http" + + "code.gitea.io/gitea/models" + "code.gitea.io/gitea/models/db" + "code.gitea.io/gitea/modules/context" +) + +func GetLatestRelease(ctx *context.APIContext) { + findOption := models.FindReleasesOptions{ + ListOptions: db.ListOptions{ + Page: 1, + PageSize: 1, + }, + } + releases, err := models.GetReleasesByRepoID(ctx.Repo.Repository.ID, findOption) + fmt.Println("****************ctx.Repo.Repository.ID:", ctx.Repo.Repository.ID, " ", releases, " ", err) + if err != nil { + ctx.Error(http.StatusInternalServerError, "GetReleasesByRepoID", err) + return + } + if len(releases) == 0 { + ctx.NotFound("LastRelease is not present.") + return + } + + release := releases[0] + if err := release.LoadAttributes(); err != nil { + ctx.ServerError("loadAttributes", err) + return + } + + release.Publisher.Passwd = "" + ctx.JSON(http.StatusOK, release) + +}