From 71bb6df75ae541687c64f5e6e4da16ea9e95acfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kim=20=22BKC=22=20Carlb=C3=A4cker?= Date: Mon, 3 Oct 2016 12:35:42 +0200 Subject: [PATCH] Add undocumented endpoint for /repositories/:id --- routers/api/v1/api.go | 2 ++ routers/api/v1/repo/repo.go | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index 95bdfd072..506a61562 100644 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -243,6 +243,8 @@ func RegisterRoutes(m *macaron.Macaron) { m.Get("/search", repo.Search) }) + m.Combo("/repositories/:id", reqToken()).Get(repo.GetByID) + m.Group("/repos", func() { m.Post("/migrate", bind(auth.MigrateRepoForm{}), repo.Migrate) m.Combo("/:username/:reponame", context.ExtractOwnerAndRepo()). diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index 1fa0b14b4..33d474ebd 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -251,6 +251,21 @@ func Get(ctx *context.APIContext) { ctx.JSON(200, repo.APIFormat(&api.Permission{true, true, true})) } +// GetByID returns a single Repository +func GetByID(ctx *context.APIContext) { + repo, err := models.GetRepositoryByID(ctx.ParamsInt64(":id")) + if err != nil { + if models.IsErrRepoNotExist(err) { + ctx.Status(404) + } else { + ctx.Error(500, "GetRepositoryByID", err) + } + return + } + + ctx.JSON(200, repo.APIFormat(&api.Permission{true, true, true})) +} + // Delete delete one repository // see https://github.com/gogits/go-gogs-client/wiki/Repositories#delete func Delete(ctx *context.APIContext) {