aboutsummaryrefslogtreecommitdiffstats
path: root/routers/init.go
diff options
context:
space:
mode:
authorJason Song <i@wolfogre.com>2022-10-29 00:53:08 +0800
committerGitHub <noreply@github.com>2022-10-28 19:53:08 +0300
commit60dc48dc0012ac06a07ca7abc9c8de97c2c5a867 (patch)
tree0fee5edc0af6db8443a765802f5300affde2879b /routers/init.go
parent100448a007707c049a769cb71cd170fcb5b64a25 (diff)
downloadgitea-60dc48dc0012ac06a07ca7abc9c8de97c2c5a867.tar.gz
gitea-60dc48dc0012ac06a07ca7abc9c8de97c2c5a867.zip
Sync git hooks when config file path changed (#21619)
A patch to #17335. Just like AppPath, Gitea writes its own CustomConf into git hook scripts too. If Gitea's CustomConf changes, then the git push may fail. Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'routers/init.go')
-rw-r--r--routers/init.go16
1 files changed, 13 insertions, 3 deletions
diff --git a/routers/init.go b/routers/init.go
index 9045437f87..53b33f468f 100644
--- a/routers/init.go
+++ b/routers/init.go
@@ -76,21 +76,31 @@ func InitGitServices() {
mustInit(repo_service.Init)
}
-func syncAppPathForGit(ctx context.Context) error {
+func syncAppConfForGit(ctx context.Context) error {
runtimeState := new(system.RuntimeState)
if err := system.AppState.Get(runtimeState); err != nil {
return err
}
+
+ updated := false
if runtimeState.LastAppPath != setting.AppPath {
log.Info("AppPath changed from '%s' to '%s'", runtimeState.LastAppPath, setting.AppPath)
+ runtimeState.LastAppPath = setting.AppPath
+ updated = true
+ }
+ if runtimeState.LastCustomConf != setting.CustomConf {
+ log.Info("CustomConf changed from '%s' to '%s'", runtimeState.LastCustomConf, setting.CustomConf)
+ runtimeState.LastCustomConf = setting.CustomConf
+ updated = true
+ }
+ if updated {
log.Info("re-sync repository hooks ...")
mustInitCtx(ctx, repo_service.SyncRepositoryHooks)
log.Info("re-write ssh public keys ...")
mustInit(asymkey_model.RewriteAllPublicKeys)
- runtimeState.LastAppPath = setting.AppPath
return system.AppState.Set(runtimeState)
}
return nil
@@ -153,7 +163,7 @@ func GlobalInitInstalled(ctx context.Context) {
mustInit(repo_migrations.Init)
eventsource.GetManager().Init()
- mustInitCtx(ctx, syncAppPathForGit)
+ mustInitCtx(ctx, syncAppConfForGit)
mustInit(ssh.Init)