-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Description
PRs created by assets/workspace/.github/workflows/sync-main-to-dev.yml in downstream repos (e.g. devcontainer-smoke-test) do not trigger CI workflows. Because branch protection on dev requires CI to pass, these PRs can never be merged—even when auto-merge is enabled.
The root cause is a GitHub Actions limitation: events (push, pull_request) triggered by a GitHub App installation token do not start new workflow runs, to prevent recursive loops. The sync-main-to-dev workflow uses:
commit-app-token(GitHub App) to push the sync branch—nopushevent firesrelease-app-token(GitHub App) to create the PR—nopull_requestevent fires
Latest deployment: vig-os/devcontainer-smoke-test#51
Blocked sync PR: vig-os/devcontainer-smoke-test#52
The upstream workflow (.github/workflows/sync-main-to-dev.yml) in this repo has the same pattern and may be affected too.
Steps to Reproduce
- Merge a PR to
mainin a downstream repo (e.g.devcontainer-smoke-test) sync-main-to-devfires, creates a sync branch and opens a PR targetingdev- Observe: no CI workflows run on the PR
- PR remains unmergeable due to required status checks
Expected Behavior
CI workflows should run on the sync PR so it can pass required status checks and be merged (or auto-merged).
Actual Behavior
No CI workflows are triggered. The PR is stuck with pending/missing status checks and cannot be merged.
Environment
- GitHub Actions runner:
ubuntu-22.04 - Workflow:
assets/workspace/.github/workflows/sync-main-to-dev.yml - Downstream repo:
vig-os/devcontainer-smoke-test
Additional Context
This is a known GitHub limitation: when workflows use certain tokens to perform tasks, events from those actions may not create new workflow runs (same class of behavior as GITHUB_TOKEN not re-triggering workflows).
Possible Solution
Options to consider:
- After creating the PR, explicitly trigger CI via
workflow_dispatchorrepository_dispatch - Use a PAT for the branch push or PR creation step (trades security for simplicity)
- Close and reopen the PR with
GITHUB_TOKENto generate a newpull_requestevent from a different actor
Changelog Category
Fixed