Repository navigation
fix(ci): allow data-only fork checkout for catalog admission - #8
Merged
Lucas1479 merged 1 commit intoOct 23, 2026
Merged
Conversation
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.
Catalog admission currently fails before inspecting any package from a fork:
actions/checkout@v7rejects theproposalcheckout in thepull_request_targetjob. This was reproduced by submission #7, failed checkout job.Enable the documented
allow-unsafe-pr-checkoutinput only for the proposal checkout, with an explicit data-only boundary. Keepcontents: read,persist-credentials: falseon every checkout, the protected-base checker/hashed requirements, and the fixed Host SHA unchanged. No proposal script, requirement file or submitted wheel is installed or executed by the trusted admission job. The existing generator path still requires source/generator commits to be ancestors of the protected base and executes the approved generator from a trusted clone.Add an actual CLI regression using the pinned Host: a proposal containing impostor
catalog.py,sitecustomize.py,tools/check_catalog_ci.pyand an invalid requirement file is accepted as an unchanged catalog without executing any Python sentinel. It checks process exit, exact output and absence of the marker. This is CLI/import-boundary coverage; workflow dependency provenance was reviewed separately, and existing catalog tests cover artifact/generator behavior. Ordinary unprivileged PR test jobs continue running their tests as before.Validation on Windows / CPython 3.12.10:
Checkout v7 behavior and opt-in.
This PR is separate from the extension submission and changes no catalog entry, approval or release artifact. The protected admission check on this PR still uses the current base workflow; this repair takes effect after a maintainer merges it into main. Then trigger a fresh PR event on #7 so the updated base workflow is selected; rerunning the original failed run can retain its old workflow revision.