diff options
Diffstat (limited to 'routers')
-rw-r--r-- | routers/repo/repo.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 5562a8400a..8b18eb25bf 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -217,6 +217,21 @@ func Action(ctx *middleware.Context) { err = models.StarRepo(ctx.User.Id, ctx.Repo.Repository.Id, true) case "unstar": err = models.StarRepo(ctx.User.Id, ctx.Repo.Repository.Id, false) + case "fork": + repo, error := models.ForkRepository(ctx.User, ctx.Repo.Repository) + if error != nil { + log.Error(4, "Action(%s): %v", ctx.Params(":action"), error) + ctx.JSON(200, map[string]interface{}{ + "ok": false, + "err": error.Error(), + }) + return + } + if error == nil { + ctx.Redirect(setting.AppSubUrl + "/" + repo.Owner.Name + "/" + repo.Name) + + return + } case "desc": if !ctx.Repo.IsOwner { ctx.Error(404) |