WIP: fix(test-requests): Big Beans' PRs are open for testing without the label #270

Draft
HumanBean wants to merge 1 commit from HumanBean/Longshot:fix/test-requests-big-beans into main
Owner

Why

Test requests on Big Beans' PRs couldn't be claimed and their Discord cards stayed on "Waiting for a maintainer": approval only counted owner/admin/write on Longshot, and BigBeans is a read team with write on pull requests only, so every Big Bean read as read. Big Beans should be trusted without the testing wanted label.

What changed

  • test requests: big_bean() in scripts/test_requests.py approves a PR whose author is an owner/admin of Longshot or a member of the BigBeans team (asked of the team itself, with the team sign-in); pr_info() returns it as trusted (was writer). Seeing a team's members takes being in the organization, so for anyone outside it only the label counts, as before. Messages say "Big Bean" instead of "maintainer"/"collaborator".
  • checks: tests/test_test_requests.py follows the rename (trusted) and the new wording.
  • docs: docs/test-requests.md, AGENTS.md, .claude/skills/request-testing/SKILL.md and .claude/skills/testing/SKILL.md say Big Bean.

The Discord cards come from the relay, changed the same way in MagicBeanDev/Infra#1 (already deployed).

Flags and settings

None.

Measurements

Not a game change: measured by its game-free checks (Forgejo CI) and a live check of big_bean() against git.magicbean.dev.

main: d9648863 (2026-11-13)
this PR: fix/test-requests-big-beans @ b58fcc11
Hardware: n/a (script)
Scene: n/a
Method: big_bean(login, token) called with HumanBean's sign-in
How to reproduce: python -I -B -c 'import sys; sys.path.insert(0,"scripts"); import test_requests as tr, magicbean_login as ml; print(tr.big_bean("dyst", ml.forge_session()["access_token"]))'

main @ d9648863 this PR @ b58fcc11
dyst (BigBeans) approved without the label no (read) yes
llun (BigBeans) no (read) yes
HumanBean (Owners) yes yes
mooki (not in BigBeans) no no
HumanBean True
dyst True
llun True
github-sync True   (Owners)
mooki False

Testing

Tested: big_bean() against git.magicbean.dev for owners, Big Beans and a non-member (above). No tests were run on this PC. The PR's CI run (light checks: title, actionlint, third_party) passed; the full game-free suite (run_all.py) runs only by manual dispatch and hasn't run on this branch.

Not tested: claim/list end to end on a live Big Bean request; a sign-in from someone outside the organization (expected: the team lookup is refused and only the label counts).

Needs other testers: None

Screenshots

Nothing on screen.

Risk and rollback

A Big Bean's PR can now be claimed without the label, which is the intent. If the team lookup fails, the PR just needs the label as before. Reverting the commit is enough.

Reviewer notes

big_bean() in scripts/test_requests.py first.

Issues

None.

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main.
  • python -I -B tests/run_all.py run and passing (any failure that also fails on main is named above). (not run: no tests run on this PC, and the PR's CI run does only the light checks — title, actionlint, third_party — which passed; the full suite runs only by hand, and the fork has no Actions)
  • Tested in the game, or what wasn't is named under Testing.
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests).
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported.
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

If applicable

  • AI assistance recorded with Assisted-by: / Co-Authored-By: trailers.
  • A check under tests/ that reads changed source updated in this PR, not weakened.
  • Docs updated.

🤖 Generated with Claude Code

## Why Test requests on Big Beans' PRs couldn't be claimed and their Discord cards stayed on "Waiting for a maintainer": approval only counted owner/admin/write on Longshot, and BigBeans is a read team with write on pull requests only, so every Big Bean read as `read`. Big Beans should be trusted without the `testing wanted` label. ## What changed - test requests: `big_bean()` in `scripts/test_requests.py` approves a PR whose author is an owner/admin of Longshot or a member of the **BigBeans** team (asked of the team itself, with the team sign-in); `pr_info()` returns it as `trusted` (was `writer`). Seeing a team's members takes being in the organization, so for anyone outside it only the label counts, as before. Messages say "Big Bean" instead of "maintainer"/"collaborator". - checks: `tests/test_test_requests.py` follows the rename (`trusted`) and the new wording. - docs: `docs/test-requests.md`, `AGENTS.md`, `.claude/skills/request-testing/SKILL.md` and `.claude/skills/testing/SKILL.md` say Big Bean. The Discord cards come from the relay, changed the same way in [MagicBeanDev/Infra#1](https://git.magicbean.dev/MagicBeanDev/Infra/pulls/1) (already deployed). ## Flags and settings None. ## Measurements Not a game change: measured by its game-free checks (Forgejo CI) and a live check of `big_bean()` against git.magicbean.dev. main: d9648863 (2026-11-13) this PR: fix/test-requests-big-beans @ b58fcc11 Hardware: n/a (script) Scene: n/a Method: `big_bean(login, token)` called with HumanBean's sign-in How to reproduce: `python -I -B -c 'import sys; sys.path.insert(0,"scripts"); import test_requests as tr, magicbean_login as ml; print(tr.big_bean("dyst", ml.forge_session()["access_token"]))'` | | main @ d9648863 | this PR @ b58fcc11 | |---|---|---| | dyst (BigBeans) approved without the label | no (`read`) | yes | | llun (BigBeans) | no (`read`) | yes | | HumanBean (Owners) | yes | yes | | mooki (not in BigBeans) | no | no | ``` HumanBean True dyst True llun True github-sync True (Owners) mooki False ``` ## Testing **Tested:** `big_bean()` against git.magicbean.dev for owners, Big Beans and a non-member (above). No tests were run on this PC. The PR's CI run (light checks: title, actionlint, third_party) passed; the full game-free suite (`run_all.py`) runs only by manual dispatch and hasn't run on this branch. **Not tested:** `claim`/`list` end to end on a live Big Bean request; a sign-in from someone outside the organization (expected: the team lookup is refused and only the label counts). **Needs other testers:** None ## Screenshots Nothing on screen. ## Risk and rollback A Big Bean's PR can now be claimed without the label, which is the intent. If the team lookup fails, the PR just needs the label as before. Reverting the commit is enough. ## Reviewer notes `big_bean()` in `scripts/test_requests.py` first. ## Issues None. ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [x] Rebased on current `main`. - [ ] `python -I -B tests/run_all.py` run and passing (any failure that also fails on `main` is named above). (not run: no tests run on this PC, and the PR's CI run does only the light checks — title, actionlint, third_party — which passed; the full suite runs only by hand, and the fork has no Actions) - [x] Tested in the game, or what wasn't is named under Testing. - [x] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). - [x] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### If applicable - [x] AI assistance recorded with `Assisted-by:` / `Co-Authored-By:` trailers. - [x] A check under `tests/` that reads changed source updated in this PR, not weakened. - [x] Docs updated. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(test-requests): Big Beans' PRs are open for testing without the label
All checks were successful
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
CI / Conventional Commit title (pull_request) Successful in 9s
PR description / Description follows the template (pull_request_target) Successful in 10s
CI / Workflow lint (actionlint) (pull_request) Successful in 10s
Third-party parts / As their notes say (pull_request) Successful in 18s
67a78f5bcc
test_requests.py let a PR through only when its author had owner/admin/write on Longshot. BigBeans is a read team
with write on pull requests, so Big Beans read as "read" and their requests couldn't be claimed. It now asks the
BigBeans team (with the team sign-in; anyone outside the organization can't see it, and only the label counts for
them), matching the relay that keeps the Discord cards. The docs and skills say Big Bean instead of maintainer.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
HumanBean force-pushed fix/test-requests-big-beans from 67a78f5bcc
All checks were successful
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
CI / Conventional Commit title (pull_request) Successful in 9s
PR description / Description follows the template (pull_request_target) Successful in 10s
CI / Workflow lint (actionlint) (pull_request) Successful in 10s
Third-party parts / As their notes say (pull_request) Successful in 18s
to b58fcc11a3
All checks were successful
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
CI / Conventional Commit title (pull_request) Successful in 5s
CI / Workflow lint (actionlint) (pull_request) Successful in 10s
Third-party parts / As their notes say (pull_request) Successful in 13s
PR description / Description follows the template (pull_request_target) Successful in 5s
Website / Website on Cloudflare (pull_request_target) Has been skipped
2026-11-13 18:37:33 +00:00
Compare
Author
Owner

Rebased onto main @ d9648863 (one new commit, no conflicts); Needs other testers is now 'None'.

Rebased onto main @ d9648863 (one new commit, no conflicts); Needs other testers is now 'None'.
Author
Owner

CI's light checks pass on b58fcc11. The full suite (tests/run_all.py) is manual-only and hasn't run on this branch yet, so that box stays unticked and the PR stays WIP.

CI's light checks pass on b58fcc11. The full suite (tests/run_all.py) is manual-only and hasn't run on this branch yet, so that box stays unticked and the PR stays WIP.
All checks were successful
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
CI / Conventional Commit title (pull_request) Successful in 5s
CI / Workflow lint (actionlint) (pull_request) Successful in 10s
Third-party parts / As their notes say (pull_request) Successful in 13s
PR description / Description follows the template (pull_request_target) Successful in 5s
Website / Website on Cloudflare (pull_request_target) Has been skipped
This pull request has changes conflicting with the target branch.
  • AGENTS.md
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u 'fix/test-requests-big-beans:HumanBean-fix/test-requests-big-beans'
git switch 'HumanBean-fix/test-requests-big-beans'
Sign in to join this conversation.
No reviewers
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
MagicBeanDev/Longshot!270
No description provided.