diff options
author | Unknwon <u@gogs.io> | 2015-08-08 01:04:12 +0800 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2015-08-08 01:04:12 +0800 |
commit | 3d0583df0f1704bc0e1c0d1348f2054515680fed (patch) | |
tree | d8a91c0075a73ce0249179c5ef02092dbc139a5c | |
parent | 45adb9b7a38cca896bf8fb3f27ccb29fc244b395 (diff) | |
download | gitea-3d0583df0f1704bc0e1c0d1348f2054515680fed.tar.gz gitea-3d0583df0f1704bc0e1c0d1348f2054515680fed.zip |
fix private repo cannot trigger hook by SSH
-rw-r--r-- | cmd/web.go | 6 | ||||
-rw-r--r-- | gogs.go | 2 | ||||
-rw-r--r-- | routers/repo/setting.go | 21 | ||||
-rw-r--r-- | templates/.VERSION | 2 |
4 files changed, 26 insertions, 5 deletions
diff --git a/cmd/web.go b/cmd/web.go index 9e35698a4d..708ff59e70 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -461,7 +461,6 @@ func runWeb(ctx *cli.Context) { m.Get("/branches", repo.Branches) m.Get("/archive/*", repo.Download) m.Get("/pulls2/", repo.PullRequest2) - m.Head("/hooks/trigger", repo.TriggerHook) m.Group("", func() { m.Get("/src/*", repo.Home) @@ -479,7 +478,10 @@ func runWeb(ctx *cli.Context) { m.Get(".git", repo.Home) }, ignSignIn, middleware.RepoAssignment(true, true), middleware.RepoRef()) - m.Any("/:reponame/*", ignSignInAndCsrf, repo.Http) + m.Group("/:reponame", func() { + m.Any("/*", ignSignInAndCsrf, repo.Http) + m.Head("/hooks/trigger", repo.TriggerHook) + }) }) // robots.txt @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.6.4.0806 Beta" +const APP_VER = "0.6.4.0808 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/routers/repo/setting.go b/routers/repo/setting.go index 8f6ef1787b..05881a67ef 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) { diff --git a/templates/.VERSION b/templates/.VERSION index 8a54eae634..1fd1eb7418 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.6.4.0806 Beta
\ No newline at end of file +0.6.4.0808 Beta
\ No newline at end of file |