fix: hook post-receive for sha256 repos

This commit is contained in:
oliverpool 2024-05-15 15:42:29 +02:00
parent 2ac3dcbd43
commit 5e73c67d67
8 changed files with 50 additions and 22 deletions

View file

@ -316,12 +316,12 @@ func runHookUpdate(c *cli.Context) error {
return nil
}
// Deletion of the ref means that the new commit ID is only composed of '0'.
if strings.ContainsFunc(newCommitID, func(e rune) bool { return e != '0' }) {
return nil
// Empty new commit ID means deletion.
if git.IsEmptyCommitID(newCommitID, nil) {
return fail(ctx, fmt.Sprintf("The deletion of %s is skipped as it's an internal reference.", refFullName), "")
}
return fail(ctx, fmt.Sprintf("The deletion of %s is skipped as it's an internal reference.", refFullName), "")
return nil
}
func runHookPostReceive(c *cli.Context) error {
@ -405,8 +405,7 @@ Forgejo or set your environment appropriately.`, "")
newCommitIDs[count] = string(fields[1])
refFullNames[count] = git.RefName(fields[2])
commitID, _ := git.NewIDFromString(newCommitIDs[count])
if refFullNames[count] == git.BranchPrefix+"master" && !commitID.IsZero() && count == total {
if refFullNames[count] == git.BranchPrefix+"master" && !git.IsEmptyCommitID(newCommitIDs[count], nil) && count == total {
masterPushed = true
}
count++
@ -697,8 +696,7 @@ Forgejo or set your environment appropriately.`, "")
if err != nil {
return err
}
commitID, _ := git.NewIDFromString(rs.OldOID)
if !commitID.IsZero() {
if !git.IsEmptyCommitID(rs.OldOID, nil) {
err = writeDataPktLine(ctx, os.Stdout, []byte("option old-oid "+rs.OldOID))
if err != nil {
return err