chore: improve external contributor CI flow - #42061
Draft
tomjose92 wants to merge 6 commits into
Draft
Conversation
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Fork pull_request events always receive a read-only GITHUB_TOKEN, so the PR-body write in mark-stale and parse-tags fails with 403 and shows a red check unrelated to the contributor's code. External PRs are covered by external-pr-validation.yml and the /approve-ci trusted dispatch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fork PRs cannot use the larger runners or secrets these jobs need, so they queued indefinitely and qc-result never resolved. Fork PRs are covered by external-pr-validation.yml; qc-result now skips instead of passing vacuously so the merge gate reflects reality. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…orks - ci-test-limited-existing-docker-image now receives checkout-ref like its sibling jobs, closing the last unpinned checkout in the trusted dispatch path (a contributor push after /approve-ci could otherwise run with secrets). - Chromatic build/docs uploads skip fork PRs where the project tokens are unavailable and the jobs could only fail. Storybook tests still run for forks since they need no secrets. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Mirrors the internal cyclic-dependency comparison but reports through the job summary and exit code instead of a PR comment, which fork tokens cannot post. Adds a compile-only client build with placeholder env values so build breakage surfaces before maintainer review. Both remain credential-free on GitHub-hosted runners. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Improves the external-contributor pull request experience while preserving the security boundary around secret-bearing CI and deploy-preview workflows.
This change:
/ok-to-testinstructions with a clear Testing section and documented check states;/approve-cicommand;/ci-test-limit,/test-pw, and/build-deploy-previewcommands;actions/stalefrom v3 to v9.Internal Appsmith PRs keep using the existing quality-check workflow. The new credential-free validation and external state jobs explicitly skip same-repository PRs.
Security model
The external validation workflow has only:
It does not reference repository secrets, write to pull requests, publish images, or access deployment infrastructure. Privileged CI remains maintainer-triggered through the existing GitHub App dispatcher.
/approve-cirecords the current PR head, verifies that the checked-out merge commit contains that exact head, and passes the immutable merge SHA to every secret-bearing downstream workflow. A later contributor push requires a new approval.Testing
git diff --check.checkout-refcaller has a matching reusable-workflow input.Notes for reviewers
/ok-to-test tags="". Internal maintainers can continue using the existing label-based path, but may want to add a maintainer-only syntax hint to the template.Communication
Should the DevRel and Marketing teams inform users about this change?
Warning
Tests have not run on the HEAD 7635628 yet
Tue, 04 Aug 2026 13:06:50 UTC