mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-10-24 02:52:37 +00:00
Merging PR may fail because of various problems. The pull request may have a dirty state because there is no transaction when merging a pull request. ref https://github.com/go-gitea/gitea/pull/25741#issuecomment-2074126393 This PR moves all database update operations to post-receive handler for merging a pull request and having a database transaction. That means if database operations fail, then the git merging will fail, the git client will get a fail result. There are already many tests for pull request merging, so we don't need to add a new one. --------- Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> (cherry picked from commit ebf0c969403d91ed80745ff5bd7dfbdb08174fc7) Conflicts: modules/private/hook.go routers/private/hook_post_receive.go trivial conflicts because 263a716cb5 * Performance optimization for git push (#30104) was not cherry-picked and because of |
||
|---|---|---|
| .. | ||
| branch.go | ||
| branch_test.go | ||
| collaborator.go | ||
| collaborator_test.go | ||
| commits.go | ||
| commits_test.go | ||
| create.go | ||
| create_test.go | ||
| delete.go | ||
| env.go | ||
| fork.go | ||
| hooks.go | ||
| init.go | ||
| init_test.go | ||
| license.go | ||
| license_test.go | ||
| main_test.go | ||
| push.go | ||
| repo.go | ||
| repo_test.go | ||
| temp.go | ||