forgejo/modules/private
Lunny Xiao eb792d9f8a
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
2024-05-12 20:03:10 +02:00
..
actions.go Return `responseText` instead of string in some functions (#28836) 2024-01-19 10:45:23 +08:00
forgejo_actions.go [CLI] implement forgejo-cli 2024-02-05 13:33:58 +01:00
hook.go Move database operations of merging a pull request to post receive hook and add a transaction (#30805) 2024-05-12 20:03:10 +02:00
internal.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" (#23687) 2023-03-29 14:32:26 +08:00
key.go Return `responseText` instead of string in some functions (#28836) 2024-01-19 10:45:23 +08:00
mail.go Return `responseText` instead of string in some functions (#28836) 2024-01-19 10:45:23 +08:00
manager.go Replace `interface{}` with `any` (#25686) 2023-07-04 18:36:08 +00:00
request.go Return `responseText` instead of string in some functions (#28836) 2024-01-19 10:45:23 +08:00
restore_repo.go Fix regression: access log template, gitea manager cli command (#24838) 2023-05-22 09:38:38 +08:00
serv.go Refactor internal API for git commands, use meaningful messages instead of "Internal Server Error" (#23687) 2023-03-29 14:32:26 +08:00