A push to a branch with an open PR fired both the `push` and `pull_request` triggers, running the gate (and manifests) twice. On Gitea those runs are byte-identical: unlike GitHub it has no merge-preview ref, so its `pull_request` checks out `refs/pull/N/head` — the same commit a branch push would. Scope `push` to `main` and let `pull_request` gate feature branches: halves CI on every PR push, loses no coverage, and is forward-compatible — if Gitea ever adds the merge ref, these runs upgrade to testing the merged result for free.