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) + +}