Finding
/cc, /uncc, /lock and /unassign each wrap their GitHub write in a command-specific error (could not self cc, could not request reviewers, could not self uncc, could not lock issue, could not remove assignee). Those arms are unit-covered but have never been driven through the shipped dist/index.js, so whether the bundle actually surfaces them as core.setFailed with exit 1 is untested end-to-end.
Unit evidence — npx vitest run --coverage on main @ 3fc21f2 (80 files): src/issueComment/{cc,uncc,lock,unassign}.ts all at 100 % statements / lines.
End-to-end evidence — npm run test:coverage:e2e on main @ 3fc21f2 (5 __tests__/bundle files, coverage/coverage-final.json), zero-hit statements:
| file |
zero-hit lines |
reachable through the API |
cc.ts |
26, 39, 58, 76 |
39 (self /cc POST requested_reviewers refused), 76 (argument /cc POST requested_reviewers refused) |
uncc.ts |
25, 38, 57 |
38 (self /uncc DELETE requested_reviewers refused) |
lock.ts |
33, 47, 68 |
68 (PUT issues/1/lock refused after the collaborator check passes) |
unassign.ts |
25, 58, 70 |
70 (authorized argument /unassign DELETE assignees refused) |
The other zero-hit lines are not reachable from an issue_comment payload: lines 25/26/33 need a payload without an issue number, and the could not get authorized users / could not check commenter auth rethrows (cc.ts:58, uncc.ts:57, lock.ts:47, unassign.ts:58) cannot fire because checkOrgMember, checkCollaborator and checkIssueComments in src/utils/auth.ts swallow every non-404 error and return false. They stay unit-only by construction.
Not claimed by any open held PR: #302 covers /assign, #306 covers /reopen//retitle, #296 covers /close//milestone; none touch these four files or __tests__/bundle/collaborationCommands.test.ts's happy paths.
Recommendation
Priority
- Impact: medium — unit-covered, not end-to-end covered (coverage-gap priority 2)
- Effort: low
Filed by quality agent (hold-gated mode)
Finding
/cc,/uncc,/lockand/unassigneach wrap their GitHub write in a command-specific error (could not self cc,could not request reviewers,could not self uncc,could not lock issue,could not remove assignee). Those arms are unit-covered but have never been driven through the shippeddist/index.js, so whether the bundle actually surfaces them ascore.setFailedwith exit 1 is untested end-to-end.Unit evidence —
npx vitest run --coverageonmain@ 3fc21f2 (80 files):src/issueComment/{cc,uncc,lock,unassign}.tsall at 100 % statements / lines.End-to-end evidence —
npm run test:coverage:e2eonmain@ 3fc21f2 (5__tests__/bundlefiles,coverage/coverage-final.json), zero-hit statements:cc.ts/ccPOST requested_reviewersrefused), 76 (argument/ccPOST requested_reviewersrefused)uncc.ts/unccDELETE requested_reviewersrefused)lock.tsPUT issues/1/lockrefused after the collaborator check passes)unassign.ts/unassignDELETE assigneesrefused)The other zero-hit lines are not reachable from an
issue_commentpayload: lines 25/26/33 need a payload without an issue number, and thecould not get authorized users/could not check commenter authrethrows (cc.ts:58,uncc.ts:57,lock.ts:47,unassign.ts:58) cannot fire becausecheckOrgMember,checkCollaboratorandcheckIssueCommentsinsrc/utils/auth.tsswallow every non-404 error and returnfalse. They stay unit-only by construction.Not claimed by any open held PR: #302 covers
/assign, #306 covers/reopen//retitle, #296 covers/close//milestone; none touch these four files or__tests__/bundle/collaborationCommands.test.ts's happy paths.Recommendation
__tests__/bundle/reviewLockArms.test.tsdriving the five refused writes above throughdist/index.jsagainst the fake GitHub, asserting exit 1, the wrapped error text and the exact request sequencePriority
Filed by quality agent (hold-gated mode)