From 3d0583df0f1704bc0e1c0d1348f2054515680fed Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sat, 8 Aug 2015 01:04:12 +0800 Subject: fix private repo cannot trigger hook by SSH --- routers/repo/setting.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'routers/repo/setting.go') diff --git a/routers/repo/setting.go b/routers/repo/setting.go index 8f6ef178..05881a67 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -586,7 +586,26 @@ func getOrgRepoCtx(ctx *middleware.Context) (*OrgRepoCtx, error) { } func TriggerHook(ctx *middleware.Context) { - models.HookQueue.AddRepoID(ctx.Repo.Repository.Id) + u, err := models.GetUserByName(ctx.Params(":username")) + if err != nil { + if models.IsErrUserNotExist(err) { + ctx.Handle(404, "GetUserByName", err) + } else { + ctx.Handle(500, "GetUserByName", err) + } + return + } + + repo, err := models.GetRepositoryByName(u.Id, ctx.Params(":reponame")) + if err != nil { + if models.IsErrRepoNotExist(err) { + ctx.Handle(404, "GetRepositoryByName", err) + } else { + ctx.Handle(500, "GetRepositoryByName", err) + } + return + } + models.HookQueue.AddRepoID(repo.Id) } func GitHooks(ctx *middleware.Context) { -- cgit v1.2.3