diff --git a/router/router.go b/router/router.go index 370d7b8f..43b7cd4e 100644 --- a/router/router.go +++ b/router/router.go @@ -103,6 +103,7 @@ func Load(middleware ...gin.HandlerFunc) http.Handler { // requires push permissions repo.PATCH("", session.MustPush, server.PatchRepo) repo.DELETE("", session.MustPush, server.DeleteRepo) + repo.POST("/chown", session.MustPush, server.ChownRepo) repo.POST("/builds/:number", session.MustPush, server.PostBuild) repo.DELETE("/builds/:number/:job", session.MustPush, server.DeleteBuild) diff --git a/server/repo.go b/server/repo.go index 08163afb..2a089e0b 100644 --- a/server/repo.go +++ b/server/repo.go @@ -136,6 +136,19 @@ func PatchRepo(c *gin.Context) { c.JSON(http.StatusOK, repo) } +func ChownRepo(c *gin.Context) { + repo := session.Repo(c) + user := session.User(c) + repo.UserID = user.ID + + err := store.UpdateRepo(c, repo) + if err != nil { + c.AbortWithError(http.StatusInternalServerError, err) + return + } + c.JSON(http.StatusOK, repo) +} + func GetRepo(c *gin.Context) { c.JSON(http.StatusOK, session.Repo(c)) }