forgejo/services
Lunny Xiao 7e81775184
Move database operations of merging a pull request to post receive hook and add a transaction (#30805)
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
	  998a431747 Do not update PRs based on events that happened before they existed
(cherry picked from commit eb792d9f8a)

(cherry picked from commit ec3f5f9992d7ff8250c044a4467524d53bd50210)
2024-05-14 15:37:32 +02:00
..
actions Use action user as the trigger user of schedules (#30581) 2024-04-21 18:17:35 +02:00
agit Use the database object format name but not read from git repoisitory everytime and fix possible migration wrong objectformat when migrating a sha256 repository (#29294) 2024-02-26 22:30:26 +01:00
asymkey Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
attachment Add support for API blob upload of release attachments (#29507) 2024-03-06 12:10:46 +08:00
auth fix: Fix to delete cookie when AppSubURL is non-empty (#30375) (#30469) 2024-04-21 17:39:14 +02:00
automerge Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
context Ignore useless error message "broken pipe" (#30801) (#30842) 2024-05-07 08:15:36 +01:00
contexttest Move database operations of merging a pull request to post receive hook and add a transaction (#30805) 2024-05-14 15:37:32 +02:00
convert services/convert: Convert a Repository's ObjectFormatName too 2024-04-26 08:55:40 +00:00
cron Update checker setting updates 2024-04-10 20:55:35 +00:00
doctor Merge pull request '[v7.0/forgejo] [BUG] Don't remove builtin OAuth2 applications' (#3069) from bp-v7.0/forgejo-6af8f3a into v7.0/forgejo 2024-04-06 12:43:33 +00:00
externalaccount
feed
forgejo [UPGRADE] run sanity checks before the database is upgraded 2024-02-05 14:44:33 +01:00
forms [I18N] Improve English locale 2024-04-15 17:50:01 +00:00
gitdiff [PERFORMANCE] git check-attr on bare repo if supported 2024-03-28 10:52:51 +01:00
indexer Fix missing issue search index update when changing status (#28325) 2023-12-03 12:22:44 +01:00
issue [Port] gitea#29999: Fix Add/Remove WIP on pull request title failure 2024-03-29 12:21:51 +01:00
lfs Move context from modules to services (#29440) 2024-03-06 12:10:43 +08:00
mailer [v7.0/forgejo] Add inline attachments to comments and prevent double handling of mails (#3566) 2024-05-01 12:19:38 +00:00
markup [v7.0/forgejo] Render inline file permalinks 2024-04-01 16:15:58 +02:00
migrations FIX gogs migration if gogs is hosted at a subpath (#3572) 2024-05-01 16:32:17 +00:00
mirror Avoid losing token when updating mirror settings (#30429) (#30464) 2024-04-15 16:43:34 +02:00
notify Clean up log messages (#30313) 2024-04-15 16:11:14 +02:00
org Delete repos of org when purge delete user (#27273) 2023-10-19 13:16:11 +00:00
packages packages: skip error logging on duplicate 2024-03-24 07:12:31 +01:00
pull Move database operations of merging a pull request to post receive hook and add a transaction (#30805) 2024-05-14 15:37:32 +02:00
release Fix release published actions not triggering for releases created from existing tags 2024-04-16 18:28:53 +00:00
repository Make "sync branch" also sync object format and add tests (#30878) (#30880) 2024-05-14 15:28:38 +02:00
secrets Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
task Fix incorrect ctx usage in defer function (#27740) 2023-10-22 14:12:27 +00:00
uinotification
user Check the token's owner and repository when registering a runner (#30406) 2024-04-16 11:43:08 +02:00
webhook Merge pull request '[v7.0/forgejo] fix: webhook: send short ref on gitea create/delete payload' (#3560) from bp-v7.0/forgejo-0d3a9e6-cb0f361 into v7.0/forgejo 2024-04-30 12:51:43 +00:00
wiki Clean up log messages (#30313) 2024-04-15 16:11:14 +02:00