docs: reduce the fork-gate bullet to its guarantee #39
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/fork-gate-bullet-guarantee"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #33, from review
01M44FMS560BRRJR823QSZRW2E(threads #123531 and #123532).The Security model bullet about fork runs now states only the guarantee: a fork run returns at the fork gate without opening a review session, so it never reads
REVIEW_CAPABILITY_TOKEN. The call order and the names of the tests that check it are gone. The Composition section already shows where the gate sits in code.The opening comment of
src/wrapper/event-context.tsdrops the sentence that listed where PR metadata comes from. The two branches ofreadWrapperInputsright below it show that.Stacked on #33, because both edits change text that #33 writes.
🤖 Generated with Claude Code
Review
01M45PJYX9YGQXV07DPAN0YRPC— headf5990dc2ae36a040605ce6d11f43067029ec73b5Review — j4k-oss/review-wrapper @
41e47cf925Scope: diff against base tree
d4e1d10f7991Status: dispatched — coverage complete (5/5 slots terminal)
Facts: current review-wide projection
Computed under:
Findings (0)
No findings survived.
Reviewed:
Other claims
Coverage
Coverage pass: 01M45PJYYT9EH7S95WXAP96D0S
Accounting: complete
Slot health: general-bug (whole/default): unit-failed; writing-quality (whole/default): unit-failed; test-trimming (whole/default): unit-failed; restated-sets (whole/default): unit-failed; project-docs (whole/default): unit-failed
@ -55,2 +48,5 @@- Forgejo does pass secrets to fork `pull_request_target` runs, so the protection is inthe code. A fork run returns at the fork gate without opening a review session, so itnever reads `REVIEW_CAPABILITY_TOKEN`.- The capability token is read in exactly one module with zero internal imports(`src/credentials.ts`) and flows only into the `Authorization` header of requests tomedium — Credential security bullet restates module and import counts
lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M44KEB4AFFE7VZQYK6JQPPHXof review01M44JG8KYBFS4CPN0YDC2YFZ3@jercik I'm holding this one for your decision rather than applying it. The bullet states the token's isolation as a guarantee of the security model, and only half of it is enforced:
src/credentials.test.tsfails whensrc/credentials.tsimports anything butnode:builtins.src/credentials.tsis the only module that readsREVIEW_CAPABILITY_TOKENtoday, but nothing fails if a second one starts reading it.The finding would replace both counts with a pointer to
reviewCredentialsand its test. That changes what the security section promises a reader, the same question held on #30 for01M44DH5HKQFA3T9JJSGAEFP8M. The other option keeps the guarantee and adds a test that fails when any other module readsREVIEW_CAPABILITY_TOKEN. The bullet is older than this PR, so either change goes in a follow-up.I disagree with the pointer, and that closes my question above: the bullet keeps both counts.
The counts are the guarantee: one module reads
REVIEW_CAPABILITY_TOKEN, and that module imports nothing internal. A pointer toreviewCredentialswould drop what a reader of a security model needs to know. The gap is on the other side. Only the import count is tested, insrc/credentials.test.ts. A follow-up stacked on this PR will add a test that fails when a second module reads the variable, and I'll link it here once it is open.This is review
01M44JG8KYBFS4CPN0YDC2YFZ3of0886930. Dispatch run 64311 completed it after run 64243 lost slots to model capacity. The finding with a thread,01M44KEB4AFFE7VZQYK6JQPPHX(the security bullet counts the modules that read the token), is held there for the owner's decision. The other five are summary-only, about README text this PR doesn't change:01M44K7G6K3CZ27JABPC2M1Y5W(outcome table) is valid. #30 replaces the table with a pointer toOUTCOMESandOUTCOME_EXIT.01M44K83DDMGM1PZA8EQ5A0NPR(action-input table) and01M44KBHQWPBQGA64ZY8W03TAR(recovery table) are valid. #34 points the README atinputsinaction.ymland at the remedy printed on the failure log line.01M44KA0HM55EGQ3WJXEKQSJKX(required-variable list) and01M44KC8JMJK26V9WMHQTK086D(composition paragraph) are valid. #32 replaces the list with pointers toforgeCredentials,readWrapperInputsandsrc/main.ts, and the reconcilers with a pointer toWrapperDeps.The test is in #44, stacked on this PR. It fails when any non-test module under
src/other thansrc/credentials.tsreadsREVIEW_CAPABILITY_TOKENby name. It can't see a name built at run time.0886930d8df5990dc2ae