forgejo/tests
Earl Warren 7b4dba3aa0 [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>
2024-02-11 13:06:54 +00:00
..
e2e
fuzz Rework markup link rendering (#26745) 2024-01-15 08:49:24 +00:00
gitea-lfs-meta
gitea-repositories-meta [GITEA] Detect file rename and show in history 2024-02-05 16:09:40 +01:00
integration [ACTIONS] skip superflous pull request synchronized event (#2314) 2024-02-11 13:06:54 +00:00
testdata/data/attachments/a/0
mssql.ini.tmpl [CI] Forgejo Actions based CI (squash) all queues are immediate 2024-02-05 13:33:59 +01:00
mysql.ini.tmpl [CI] Forgejo Actions based CI (squash) all queues are immediate 2024-02-05 13:33:59 +01:00
pgsql.ini.tmpl [CI] Forgejo Actions based CI (squash) all queues are immediate 2024-02-05 13:33:59 +01:00
sqlite.ini.tmpl [TESTS] increase test-sqlite log level to Trace 2024-02-05 14:44:33 +01:00
test_utils.go [TESTS] tests.AddFixtures helper loads additional per-test fixtures 2024-02-05 14:44:33 +01:00