Skip to content

Commit d280265

Browse files
ci(fleet-write): the advisory mint comment names its four write rows and the read mint (#29620)
<!-- claude-projects-attribution: {"github_login":"huangyiirene"} --> _Requested by **Irene** · [project thread](https://claude.ai/code/project/chan_01TJXtQ1tVD26ecLDZxFS67x?thread=cmsg_01TJXtQ1tVD26ecLDZxFS67xU1C787MQBQdgHEzN2hGGe1)_ Fixes #29448 ## What changes Item 3 of the card, alone, because it sits on a Tier H file. Items 1 and 2 are in the companion Tier S PR, which carries `Part of #29448`. `.github/workflows/fleet-write.yml`, the comment above `permission-repository-advisories` in the mint step: it said THREE consumers (`advisory_report`, `advisory_collaborators_add`, `advisory_state`). It now names the four rows that write (adding `advisory_create`), and says that `advisory_read` gets a separate READ-ONLY mint through the same input: the validator writes `permission_repository_advisories=read` for its stroke, never `write`. Comment lines only. No step, input, `with:` value, permission or code path changes; `git diff -w` shows no changed line that is not a `#` comment, and the file still parses as YAML. ## Why The comment documented the mint as main had it before `advisory_create` and `advisory_read` landed; the op table (`scripts/pm/fleet-write/ops.mjs`, "The four rows that touch a security advisory" and "The one row that READS an advisory") and the validator's self-test (the read's stroke mints `repository-advisories: read`, a writing row's mints `write`) are what the workflow does today. ## Verification - `node scripts/pm/dispatch-gates.mjs --commands` derived 37 commands for this diff; all 37 exit 0 on this head, including `check:pm-fleet-write-dispatch`, `check:required-contexts`, `check:workflow-step-name-quoting`, `check:workflow-status-functions`, `check:pm-expected-skips`, `check:step-collectors` and `check-comment-mask-corpus`. - `node scripts/check-commit-card-trailers.mjs --range origin/main..HEAD` exit 0. Clause-②: no Metadata-protocol: none _Keep one value on each of the two lines above, each line starting with its key. [Human Minimum](https://github.com/objectstack-ai/objectstack/blob/main/CONTRIBUTING.md#human-minimum) item 5 says what they mean._ ## Human Minimum - [x] 1. Schemas start as Zod; `packages/spec` holds no runtime logic. (not touched) - [x] 2. Every name I added uses the casing for its kind. (no names added) - [ ] 3. No formatter ran; `pnpm lint` passes. (no formatter ran; `pnpm lint` itself was not run locally, the diff touches no linted package source) - [x] 4. One issue, one branch off an up-to-date `main`, one pull request. (the card is split in two PRs by the seat's order, both off `main`, neither stacked) - [x] 5. A change that publishes carries a changeset, and both declaration lines are filled in here and in the changeset. (publishes nothing: `skip-changeset`) - [x] 6. `packages/spec` touched: its generated artifacts are regenerated and committed. (not touched) - [x] 7. No hand edits to `content/docs/references/`, `packages/*/CHANGELOG.md` or `content/docs/releases/`. - [x] 8. Title, body and comments are in English. - [x] The *Before Submitting* list in CONTRIBUTING.md is done. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01J8VVAjYkaBE16yPTYraBmt Co-authored-by: Claude <noreply@anthropic.com>
1 parent 3bd4bf6 commit d280265

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

‎.github/workflows/fleet-write.yml‎

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,14 @@ jobs:
151151
# also reaches cancel, re-run, delete, cache and artifact endpoints; the op table has no
152152
# row for any of them, and `validate.mjs --self-test` pins that none is reachable.
153153
permission-actions: ${{ steps.validate.outputs.permission_actions }}
154-
# THREE consumers, one at a time: the advisory rows — `advisory_report` (one private report),
155-
# `advisory_collaborators_add` and `advisory_state` (one advisory's PATCH). Minted ONLY for a
156-
# stroke carrying one of them, which travels alone, the same way as `permission-actions`: the
157-
# validator writes `permission_repository_advisories=write` for it and an EMPTY value for every
158-
# other stroke. Measured 2026-11-02 with this action and a control token minted without the grant
154+
# FOUR write consumers, one at a time: the advisory rows — `advisory_report` (one private report),
155+
# `advisory_create` (one draft advisory), `advisory_collaborators_add` and `advisory_state` (one
156+
# advisory's PATCH). Minted ONLY for a stroke carrying one of them, which travels alone, the same
157+
# way as `permission-actions`: the validator writes `permission_repository_advisories=write` for it
158+
# and an EMPTY value for every other stroke. Separately, `advisory_read` (one advisory's GET, also
159+
# alone) gets a READ-ONLY mint through this same input: the validator writes
160+
# `permission_repository_advisories=read` for its stroke, never `write`. Measured 2026-11-02 with
161+
# this action and a control token minted without the grant
159162
# (run 41415522766): the narrowed mint succeeds, and the grant opens an advisory's read and PATCH.
160163
# ⚠️ EXPECTED: such a run warns "Unexpected input(s) 'permission-repository-advisories'", because
161164
# the action's `action.yml` does not declare the input; its `lib/get-permissions-from-inputs.js`

0 commit comments

Comments
 (0)