forgejo/modules/repository
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
..
branch.go Make "sync branch" also sync object format and add tests (#30878) (#30880) 2024-05-14 15:28:38 +02:00
branch_test.go Make "sync branch" also sync object format and add tests (#30878) (#30880) 2024-05-14 15:28:38 +02:00
collaborator.go [MODERATION] User blocking 2024-02-05 15:56:45 +01:00
collaborator_test.go [MODERATION] User blocking 2024-02-05 15:56:45 +01:00
commits.go Fix context cache bug & enable context cache for dashabord commits' authors (#26991) 2023-09-11 10:14:01 +00:00
commits_test.go Make offline mode as default to no connect external avatar service by default (#28548) 2023-12-21 07:42:16 +00:00
create.go Add merge style fast-forward-only (#28954) 2024-02-14 17:19:19 +01:00
create_test.go Move createrepository from module to service layer (#26927) 2023-09-06 12:08:51 +00:00
delete.go Even more db.DefaultContext refactor (#27352) 2023-10-03 10:30:41 +00:00
env.go 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
fork.go Reduce usage of db.DefaultContext (#27073) 2023-09-14 17:09:32 +00:00
hooks.go Always write proc-receive hook for all git versions (#29287) 2024-02-26 22:30:25 +01:00
init.go Move generate from module to service (#29465) 2024-03-06 12:10:44 +08:00
init_test.go Make label templates have consistent behavior and priority (#23749) 2023-04-10 16:44:02 +08:00
license.go Move createrepository from module to service layer (#26927) 2023-09-06 12:08:51 +00:00
license_test.go Move createrepository from module to service layer (#26927) 2023-09-06 12:08:51 +00:00
main_test.go make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
push.go Do not update PRs based on events that happened before they existed 2024-04-12 10:41:19 +02:00
repo.go Move migration functions to services layer (#29497) 2024-03-04 07:10:53 +01:00
repo_test.go Don't remove all mirror repository's releases when mirroring (#28817) 2024-01-26 06:18:19 +00:00
temp.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00