forgejo/tests
Earl Warren ce96379aef
[ACTIONS] skip superflous pull request synchronized event (#2314)
Skip a HookEventPullRequestSync event if it has the same CommitSHA as an existing HookEventPullRequest event in the ActionRun table. A HookEventPullRequestSync event must only create an ActionRun if the CommitSHA is different from what it was when the PR was open.

This guards against a race that can happen when the following is done in parallel:

* A commit C is pushed to a repo on branch B
* A pull request with head on branch B

it is then possible that the pull request is created first, successfully. The commit that was just pushed is not known yet but the PR only references the repository and the B branch so it is fine.

A HookEventPullRequest event is sent to the notification queue but not processed immediately.

The commit C is pushed and processed successfully. Since the PR already exists and has a head that matches the branch, the head of the PR is updated with the commit C and a HookEventPullRequestSync event is sent to the notification queue.

The HookEventPullRequest event is processed and since the head of the PR was updated to be commit C, an ActionRun with CommitSHA C is created.

The HookEventPullRequestSync event is then processed and also has a CommitSHA equal to C.

Refs: https://codeberg.org/forgejo/forgejo/issues/2009
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/2314
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>
(cherry picked from commit 7b4dba3aa0)

Conflicts:
	services/actions/notifier_helper.go
	tests/integration/actions_trigger_test.go
	trivial context conficts
	services/actions/main_test.go is different in v1.21
2024-02-13 12:00:27 +01:00
..
e2e Change green buttons to primary color (#27099) 2023-09-18 22:05:31 +00:00
fuzz Rework markup link rendering (#26745) (#28803) 2024-01-16 14:41:11 +00:00
gitea-lfs-meta Test views of LFS files (#22196) 2022-12-23 07:41:56 +08:00
gitea-repositories-meta [GITEA] Detect file rename and show in history 2023-11-13 14:06:30 +01:00
integration [ACTIONS] skip superflous pull request synchronized event (#2314) 2024-02-13 12:00:27 +01:00
testdata/data/attachments/a/0 Allow get release download files and lfs files with oauth2 token format (#26430) (#27379) 2023-10-01 19:54:11 +08:00
mssql.ini.tmpl [CI] set PASSWORD_HASH_ALGO = argon2 for integration tests 2023-11-13 11:52:15 +01:00
mysql.ini.tmpl [CI] set PASSWORD_HASH_ALGO = argon2 for integration tests 2023-11-13 11:52:15 +01:00
mysql8.ini.tmpl [CI] set PASSWORD_HASH_ALGO = argon2 for integration tests 2023-11-13 11:52:15 +01:00
pgsql.ini.tmpl [CI] set PASSWORD_HASH_ALGO = argon2 for integration tests 2023-11-13 11:52:15 +01:00
sqlite.ini.tmpl [TESTS] increase test-sqlite log level to Trace 2023-11-13 12:33:48 +01:00
test_utils.go [TESTS] tests.AddFixtures helper loads additional per-test fixtures 2023-11-13 12:33:49 +01:00