mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-01-16 04:47:28 +01:00
eb792d9f8a
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
|
||
---|---|---|
.. | ||
actions | ||
agit | ||
asymkey | ||
attachment | ||
auth | ||
automerge | ||
context | ||
contexttest | ||
convert | ||
cron | ||
doctor | ||
externalaccount | ||
federation | ||
feed | ||
forgejo | ||
forms | ||
gitdiff | ||
indexer | ||
issue | ||
lfs | ||
mailer | ||
markup | ||
migrations | ||
mirror | ||
notify | ||
org | ||
packages | ||
pull | ||
release | ||
remote | ||
repository | ||
secrets | ||
task | ||
uinotification | ||
user | ||
webhook | ||
wiki |