3x-ui/.github/workflows
Sanaei 1e2d6f6081 fix(ci): close the TOCTOU race in the conflict-resolution bot
The resolve-conflicts job runs on issue_comment, a privileged trigger: it
holds GITHUB_TOKEN, the Claude OAuth token and the push PAT, and it checks
out fork code with `gh pr checkout`. The only gate was that the commenter
is the repository owner, which says nothing about the code that ends up in
the workspace. A contributor could force-push to the pull request head
between the owner asking for the merge and the runner fetching it, so the
owner reviews one tree and the job runs another.

Verify before anything is checked out that the head repository was last
pushed to before the triggering comment was written, and refuse the run
otherwise. Pin the head SHA reported by that check and abort if the commit
`gh pr checkout` lands on differs, which closes the remaining window
between the check and the fetch. Require author_association to be OWNER
alongside the existing login comparison.

This also clears CodeQL actions/untrusted-checkout/high, which for
issue_comment triggers demands both an actor/association check and a
comment-vs-head-date check dominating the checkout.
2026-07-29 21:12:28 +02:00
..
ci.yml chore(deps): migrate to react-router 8 and refresh frontend dependencies 2026-07-25 02:07:15 +02:00
claude-bot.yml fix(ci): close the TOCTOU race in the conflict-resolution bot 2026-07-29 21:12:28 +02:00
cleanup_caches.yml Run cache cleanup daily and reduce cutoff to 1 day 2026-04-21 20:36:28 +02:00
codeql.yml chore(deps): bump actions/setup-node from 6 to 7 (#5992) 2026-07-16 13:13:55 +02:00
docker.yml chore(deps): bump actions/checkout from 6 to 7 (#5454) 2026-06-20 22:25:41 +02:00
docs-ci.yml chore(deps): bump actions/setup-node from 6 to 7 (#5992) 2026-07-16 13:13:55 +02:00
docs-deploy.yml chore(deps): bump actions/setup-node from 6 to 7 (#5992) 2026-07-16 13:13:55 +02:00
mutation.yml chore(deps): bump actions/setup-go from 6 to 7 (#5995) 2026-07-16 13:14:27 +02:00
release.yml feat(xray): update xray-core to v26.7.28 and adapt panel 2026-07-28 13:14:06 +02:00
smoke.yml fix(ci): stop executing tag-checkout code in the release smoke test 2026-07-07 01:23:10 +02:00