Forgejo/cmd
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
..
forgejo [REFACTOR] cli: prepareWorkPathAndCustomConf is not just for actions 2024-02-25 09:54:25 +01:00
actions.go [BRANDING] cosmetic s/Gitea/Forgejo/ in logs, messages, etc. 2024-02-05 16:02:14 +01:00
admin.go Simplify how git repositories are opened (#28937) 2024-01-27 21:09:51 +01:00
admin_auth.go Use db.Find instead of writing methods for every object (#28084) 2023-11-24 03:49:41 +00:00
admin_auth_ldap.go Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
admin_auth_ldap_test.go Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
admin_auth_oauth.go Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
admin_auth_stmp.go Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
admin_regenerate.go Revert "[BUG] Initalize Git for hook regeneration" 2024-02-26 22:30:25 +01:00
admin_user.go Refactor to use urfave/cli/v2 (#25959) 2023-07-21 17:28:19 +08:00
admin_user_change_password.go Improve "must-change-password" logic and document (#30472) 2024-04-21 17:44:11 +02:00
admin_user_create.go fix(cli): admin user create first user never require a password change 2024-04-24 22:26:37 +00:00
admin_user_delete.go Refactor to use urfave/cli/v2 (#25959) 2023-07-21 17:28:19 +08:00
admin_user_generate_access_token.go More refactoring of db.DefaultContext (#27083) 2023-09-15 06:13:19 +00:00
admin_user_list.go Reduce usage of db.DefaultContext (#27073) 2023-09-14 17:09:32 +00:00
admin_user_must_change_password.go Refactor to use urfave/cli/v2 (#25959) 2023-07-21 17:28:19 +08:00
cert.go [BRANDING] cosmetic s/Gitea/Forgejo/ in logs, messages, etc. 2024-02-05 16:02:14 +01:00
cmd.go Refactor to use urfave/cli/v2 (#25959) 2023-07-21 17:28:19 +08:00
docs.go [BRANDING] cosmetic s/Gitea/Forgejo/ in logs, messages, etc. 2024-02-05 16:02:14 +01:00
doctor.go [BRANDING] cosmetic s/Gitea/Forgejo/ in logs, messages, etc. 2024-02-05 16:02:14 +01:00
doctor_convert.go Recommend/convert to use case-sensitive collation for MySQL/MSSQL (#28662) 2024-01-10 11:03:23 +00:00
doctor_test.go Move doctor package from modules to services (#28856) 2024-01-20 10:07:31 +08:00
dump.go [BUG] Allow to exclude files in dump 2024-03-29 13:25:11 +01:00
dump_repo.go Refactor to use urfave/cli/v2 (#25959) 2023-07-21 17:28:19 +08:00
dump_test.go [BUG] Allow to exclude files in dump 2024-03-29 13:25:11 +01:00
embedded.go Refactor to use urfave/cli/v2 (#25959) 2023-07-21 17:28:19 +08:00
generate.go [GITEA] Refactor generation of JWT secret 2024-02-05 16:54:44 +01:00
hook.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
hook_test.go Add unit tests for update git hook 2024-04-06 17:39:03 +00:00
keys.go Refactor cmd setup and remove deadcode (#29313) 2024-02-26 22:30:25 +01:00
mailer.go Return responseText instead of string in some functions (#28836) 2024-01-19 10:45:23 +08:00
main.go [BRANDING] alias {FORGEJO,GITEA}_{CUSTOM,WORK_DIR} 2024-02-05 16:05:01 +01:00
main_test.go make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
manager.go [BRANDING] cosmetic s/Gitea/Forgejo/ in logs, messages, etc. 2024-02-05 16:02:14 +01:00
manager_logging.go [BRANDING] cosmetic s/Gitea/Forgejo/ in logs, messages, etc. 2024-02-05 16:02:14 +01:00
migrate.go Refactor to use urfave/cli/v2 (#25959) 2023-07-21 17:28:19 +08:00
migrate_storage.go Fix missing migrate actions artifacts (#30874) (#30886) 2024-05-14 15:31:14 +02:00
migrate_storage_test.go Another round of db.DefaultContext refactor (#27103) 2023-09-25 13:17:37 +00:00
restore_repo.go Refactor to use urfave/cli/v2 (#25959) 2023-07-21 17:28:19 +08:00
serv.go [REFACTOR] PKT protocol 2024-03-29 00:53:04 +01:00
web.go Clean up log messages (#30313) 2024-04-15 16:11:14 +02:00
web_acme.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
web_graceful.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
web_https.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00