leftover: ADR 0001 S3 (protection GET, plant-check, H15-1) #16

Open
opened 2026-09-21 19:52:06 +00:00 by PlasticDigits · 0 comments
Owner

Tracks S3 (leftover-complete) for ADR 0001 after product PR land. This issue survives merge of #15.

S3 checklist (one dated comment; H15-1 last)

Post one dated comment on this issue with all three items below. Record H15-1 last (or all three timestamps in one attest). A GET or plant-check from before a later _ensure_codeowners apply does not count.

1. Protection GET (operator)

Repo admin of code/hello attests dated JSON: GET /api/v1/repos/code/hello/branch_protections (pick rule_name == "main") or GET .../branch_protections/main. Pass iff the main rule equals architecture protection GET for H15-2, H15-8, H15-3, H15-9, H15-10, and H15-5 (docs/architecture.md). status_check_contexts must equal ["ci/woodpecker/pr/woodpecker"]. Not the Merge API / H15-4 row. A green Woodpecker run does not satisfy this read.

2. Plant-check (dedicated post-merge PR)

Open a dedicated non-draft PR against main after the delete is on main (not PR #15, not “the next natural PR”). Title must not contain WIP (case-insensitive). Immediately after open, GET the PR and GET .../reviews. Pass iff (requested_reviewers_teams // []) | length == 0 and no review with official == true && state == "REQUEST_REVIEW" && team.name == "maintainers" (optional pin: team.id == 4). Do not require team.organization on reviews. Do not match team.name == "code/maintainers".

If both signals are empty, wait 30s and re-GET both; pass only if the second pair is still empty. Record PR number {n} and both JSON bodies used for the pass decision, then close without merge.

3. H15-1 last (four-path absence)

After items 1–2, record that test -f fails on CODEOWNERS, docs/CODEOWNERS, .gitea/CODEOWNERS, and .forgejo/CODEOWNERS.

References

  • ADR 0001 Observability and Integration completion criteria (leftover-complete).
  • PR #15’s planted official request is non-blocking (H15-10 / H15-9) and is not S3 evidence.
Tracks **S3 (leftover-complete)** for [ADR 0001](docs/adr/0001-remove-catchall-codeowners.md) after product PR land. This issue survives merge of #15. ## S3 checklist (one dated comment; H15-1 last) Post **one** dated comment on this issue with all three items below. Record **H15-1 last** (or all three timestamps in one attest). A GET or plant-check from before a later `_ensure_codeowners` apply does not count. ### 1. Protection GET (operator) Repo admin of `code/hello` attests dated JSON: `GET /api/v1/repos/code/hello/branch_protections` (pick `rule_name == "main"`) or `GET .../branch_protections/main`. Pass iff the `main` rule equals architecture **protection GET** for **H15-2**, **H15-8**, **H15-3**, **H15-9**, **H15-10**, and **H15-5** ([docs/architecture.md](docs/architecture.md)). `status_check_contexts` must **equal** `["ci/woodpecker/pr/woodpecker"]`. Not the Merge API / **H15-4** row. A green Woodpecker run does not satisfy this read. ### 2. Plant-check (dedicated post-merge PR) Open a **dedicated** non-draft PR against `main` after the delete is on `main` (not PR #15, not “the next natural PR”). Title must not contain `WIP` (case-insensitive). Immediately after open, `GET` the PR and `GET .../reviews`. Pass iff `(requested_reviewers_teams // []) | length == 0` **and** no review with `official == true && state == "REQUEST_REVIEW" && team.name == "maintainers"` (optional pin: `team.id == 4`). Do **not** require `team.organization` on reviews. Do **not** match `team.name == "code/maintainers"`. If both signals are empty, wait **30s** and re-GET both; pass only if the second pair is still empty. Record PR number `{n}` and **both** JSON bodies used for the pass decision, then **close without merge**. ### 3. H15-1 last (four-path absence) After items 1–2, record that `test -f` **fails** on `CODEOWNERS`, `docs/CODEOWNERS`, `.gitea/CODEOWNERS`, and `.forgejo/CODEOWNERS`. ## References - ADR 0001 Observability and Integration completion criteria (leftover-complete). - PR #15’s planted official request is non-blocking (**H15-10** / **H15-9**) and is **not** S3 evidence.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/hello#16
No description provided.