Repository navigation
Skip fork code execution in CI - #48
emranemran wants to merge 6 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Notifications to the private receiver fail because gh workflow run reads workflow contents before dispatching, which the Actions-only App token cannot access; use the workflow-dispatch REST endpoint directly.
1 open issue
What changed in this PR
Adds an aggregate check to the reusable Go CI workflow and a gated notification path to the central fleet builder, while preserving the existing Build workflow and deployment freeze.
Changes:
- Adds merge-group coverage, a test timeout, and a failure-sensitive
ci-gate. - Adds a disabled-by-default notification workflow that validates successful Build runs before creating a scoped App token.
- Documents the source contract, freeze restrictions, and post-freeze activation steps.
| File | Description |
|---|---|
.github/workflows/fleet-ci-notify.yml |
Validates source runs and conditionally notifies the central builder. |
.github/workflows/ci.yml |
Adds merge-group support, a test timeout, and an aggregate CI gate. |
.github/FLEET-CI.md |
Documents the source contract, deployment freeze, and activation procedure. |
.github/fleet-ci.json |
Defines trusted source and receiver metadata. |
Review effort: Balanced
|
Thanks for the CI work here. I've narrowed this PR to the maintainer's preference to avoid executing fork-provided code and to keep changes tied to current needs.
All external contributors now require workflow approval. Because fork authors can propose workflow edits, that repository-level policy remains necessary alongside job guards. Please review outside contributions and validate them on a repository branch before merging; GitHub can accept skipped required jobs. The PR remains open because the existing fork execution restrictions are substantive. This is a conservative execution policy, without claiming the previous configuration exposed publishing credentials. Workflow lint, existing offline release-control tests, and 51 event/source checks passed. GitHub validation is available in Checks. No deployment or merge was performed. The broader fork-CI policy is being reassessed. Copilot correctly notes that skipped jobs do not prove a contribution was tested; its fork-validation concern has not been rejected. |
|
Closing without merge under the final approved policy: fork CI may run after maintainer approval with read-only tokens and no secrets. The only remaining changes in this PR are fork-origin guards, so there is no substantive change left to take. Existing read-only Go CI remains in place. External-contributor workflow approval is required, the required check is |


Skip fork PRs before checkout in Go tests, reusable packaging, and Docker publishing. No new workflow files are added.
Restore the original Build workflow and remove aggregate gates, merge queue triggers, and rollout-only test timeouts. Existing main, same-repository PR image publishing, and release controls remain intact.
External contributions must be reviewed and validated on a repository branch before merging. Job guards are supplemented by the live requirement for approval of all external contributors. CodeQL uses the original GitHub-managed default setup, which already excludes fork PRs. No custom CodeQL workflow is needed or added. The required CI check is
test.Validation: actionlint passed with allowances for existing runner labels and concurrency queue syntax; existing offline release-control tests passed; 51 workflow/event/source combinations passed without executing fork code. See Checks for the current GitHub test, package, and CodeQL results.