mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-29 15:13:53 +03:00
815abad84c
- The hook regeneration code relies on `git.SupportProcReceive` being set to determine if the `proc-receive` hook should be written, this variable is set when the git module is initialized. - Resolves #2414
53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
// Copyright 2023 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package cmd
|
|
|
|
import (
|
|
asymkey_model "code.gitea.io/gitea/models/asymkey"
|
|
"code.gitea.io/gitea/modules/git"
|
|
"code.gitea.io/gitea/modules/graceful"
|
|
repo_service "code.gitea.io/gitea/services/repository"
|
|
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
var (
|
|
microcmdRegenHooks = &cli.Command{
|
|
Name: "hooks",
|
|
Usage: "Regenerate git-hooks",
|
|
Action: runRegenerateHooks,
|
|
}
|
|
|
|
microcmdRegenKeys = &cli.Command{
|
|
Name: "keys",
|
|
Usage: "Regenerate authorized_keys file",
|
|
Action: runRegenerateKeys,
|
|
}
|
|
)
|
|
|
|
func runRegenerateHooks(_ *cli.Context) error {
|
|
ctx, cancel := installSignals()
|
|
defer cancel()
|
|
|
|
if err := initDB(ctx); err != nil {
|
|
return err
|
|
}
|
|
|
|
// Detection of ProcReceive support relies on Git module being initalized.
|
|
if err := git.InitFull(ctx); err != nil {
|
|
return err
|
|
}
|
|
|
|
return repo_service.SyncRepositoryHooks(graceful.GetManager().ShutdownContext())
|
|
}
|
|
|
|
func runRegenerateKeys(_ *cli.Context) error {
|
|
ctx, cancel := installSignals()
|
|
defer cancel()
|
|
|
|
if err := initDB(ctx); err != nil {
|
|
return err
|
|
}
|
|
return asymkey_model.RewriteAllPublicKeys(ctx)
|
|
}
|