Add gpg signing for merge rebase and update by rebase (#36701)

Fix #36685 

--- 

Generated by a coding agent with Codex 5.2 LLM.
This commit is contained in:
Lunny Xiao
2026-04-05 13:37:35 -07:00
committed by GitHub
parent ca51b4f875
commit e47c6135dd
5 changed files with 67 additions and 21 deletions
+12 -8
View File
@@ -436,20 +436,24 @@ func doMergeAndPush(ctx context.Context, pr *issues_model.PullRequest, doer *use
func commitAndSignNoAuthor(ctx *mergeContext, message string) error {
cmdCommit := gitcmd.NewCommand("commit").AddOptionFormat("--message=%s", message)
if ctx.signKey == nil {
cmdCommit.AddArguments("--no-gpg-sign")
} else {
if ctx.signKey.Format != "" {
cmdCommit.AddConfig("gpg.format", ctx.signKey.Format)
}
cmdCommit.AddOptionFormat("-S%s", ctx.signKey.KeyID)
}
addCommitSigningOptions(cmdCommit, ctx.signKey)
if err := ctx.PrepareGitCmd(cmdCommit).RunWithStderr(ctx); err != nil {
return fmt.Errorf("git commit %v: %w\n%s", ctx.pr, err, ctx.outbuf.String())
}
return nil
}
func addCommitSigningOptions(cmd *gitcmd.Command, signKey *git.SigningKey) {
if signKey == nil {
cmd.AddArguments("--no-gpg-sign")
return
}
if signKey.Format != "" {
cmd.AddConfig("gpg.format", signKey.Format)
}
cmd.AddOptionFormat("--gpg-sign=%s", signKey.KeyID)
}
// ErrMergeConflicts represents an error if merging fails with a conflict
type ErrMergeConflicts struct {
Style repo_model.MergeStyle