Sync branches first (#29714)

Follow #29493.

Sync branches to DB first, then trigger push events.
This commit is contained in:
Jason Song 2024-03-11 14:42:50 +08:00 committed by GitHub
parent 4129e0e79b
commit e6d141182f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -82,19 +82,6 @@ func HookPostReceive(ctx *gitea_context.PrivateContext) {
} }
if repo != nil && len(updates) > 0 { if repo != nil && len(updates) > 0 {
if err := repo_service.PushUpdates(updates); err != nil {
log.Error("Failed to Update: %s/%s Total Updates: %d", ownerName, repoName, len(updates))
for i, update := range updates {
log.Error("Failed to Update: %s/%s Update: %d/%d: Branch: %s", ownerName, repoName, i, len(updates), update.RefFullName.BranchName())
}
log.Error("Failed to Update: %s/%s Error: %v", ownerName, repoName, err)
ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{
Err: fmt.Sprintf("Failed to Update: %s/%s Error: %v", ownerName, repoName, err),
})
return
}
branchesToSync := make([]*repo_module.PushUpdateOptions, 0, len(updates)) branchesToSync := make([]*repo_module.PushUpdateOptions, 0, len(updates))
for _, update := range updates { for _, update := range updates {
if !update.RefFullName.IsBranch() { if !update.RefFullName.IsBranch() {
@ -151,6 +138,19 @@ func HookPostReceive(ctx *gitea_context.PrivateContext) {
return return
} }
} }
if err := repo_service.PushUpdates(updates); err != nil {
log.Error("Failed to Update: %s/%s Total Updates: %d", ownerName, repoName, len(updates))
for i, update := range updates {
log.Error("Failed to Update: %s/%s Update: %d/%d: Branch: %s", ownerName, repoName, i, len(updates), update.RefFullName.BranchName())
}
log.Error("Failed to Update: %s/%s Error: %v", ownerName, repoName, err)
ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{
Err: fmt.Sprintf("Failed to Update: %s/%s Error: %v", ownerName, repoName, err),
})
return
}
} }
// Handle Push Options // Handle Push Options