[quality] bundle e2e never drives plain /close or the /milestone refusals through dist/index.js
メンテナーはふだん 2 日以内に返信
関連するプルリクエストがすでにマージされています。
- #296 @hivecommons-hive による — マージ済み
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 88/100
- issue の種類
- リファクタリング
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- github-actions, typescript
- 領域
- testing-qa
調査の方向性
tests/bundle/collaborationCommands.test.ts と tests/bundle/helpers のヘルパーから始め、その後 npm run test:coverage:e2e を実行します。記載されている close および milestone のシナリオを使って tests/bundle/closeMilestone.test.ts を追加し、リクエストとエラーが完全に一致することを検証します。コマンド実装を変更せずに bundle suite がチェックリストの各ケースをカバーすれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Finding
Cluster: src/issueComment/close.ts and src/issueComment/milestone.ts, end-to-end arms only. Disjoint from every open hold-gated bundle PR (#242 cron jobs input, #244 /meow, #246 fixed/prefixed labels, #283 OWNERS, #286 approve review, #289 tide, #291 blunderbuss, #293 hold/sweep): none of their diffs touch /close, /milestone or these two files.
Unit evidence: npx vitest run --coverage on main @ 3fc21f2 (Node v26.10.0, vitest 5.0.1, @vitest/coverage-v8 5.0.1): 100 % lines (2382/2382), 99.81 % branches, 100 % functions. Both files are fully unit-covered (__tests__/issueCommentTest/close.test.ts, milestone.test.ts).
End-to-end evidence: npm run test:coverage:e2e (the source-mapped bundle run added by #274) on the same revision, __tests__/bundle only (5 files / 142 tests): src/ at 77.9 % lines / 70.82 % branches. Per file, from coverage-final.json:
| file | e2e lines | e2e branches | lines never reached from dist/ |
|---|---|---|---|
src/issueComment/close.ts |
80 % | 66.66 % | 24, 39, 56-60, 64 |
src/issueComment/milestone.ts |
73.07 % | 53.84 % | 28, 40, 44, 52, 71-73 |
What that means in behaviour:
- plain
/close(lines 56-60, theelseofnot-planned) — the command's primary form — is never run through the bundle.bundle.test.tsdrives only the non-collaborator no-op and/close not-planned. The author shortcut (isAuthor→ no collaborator read, line 33) is likewise never exercised e2e. /closewhosePATCH /issues/1fails never surfacescould not close issue(line 64)./milestone <title>that matches no milestone never produces themilestone "…" not found. Available milestones: …failure and never proves noPATCHis sent (lines 71-73)./milestonewith no argument (line 52,please provide a milestone to add) and by a non-collaborator (line 44,commenter is not authorized to set a milestone) are never refused through the bundle.
Lines 24/28 (payload without an issue number) and 39/40 (checkCollaborator rejecting) are not reachable from an issue_comment payload over HTTP — checkCollaborator swallows non-404 errors and returns false — so they are not part of this gap.
Recommendation
Add __tests__/bundle/closeMilestone.test.ts (new file, same shape as collaborationCommands.test.ts: start() a fake GitHub, comment()/helpersFor() from ./helpers, assert the exact request list) covering:
- plain
/closeby the issue author: no collaborator read, onePATCH /issues/1with{ state: 'closed' }and nostate_reason -
/closewhosePATCHreturns 500: run fails anderrorsnamescould not close issue -
/milestone v9with milestonesv1.0,Sprint 2: run fails namingmilestone "v9" not foundand the available titles; noPATCH -
/milestonewith no argument: run fails withplease provide a milestone to addafter only the collaborator read -
/milestone v1.0by a non-collaborator: run fails withcommenter is not authorized to set a milestone; no milestones read, noPATCH
Priority
- Impact: medium — covered by unit tests, not by the bundle suite (coverage-gap priority 2 under the unit-but-not-e2e rule)
- Effort: low
Filed by quality agent (hold-gated mode)
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5q9t | SHA: 3fc21f2
— hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88
- 主要言語
- TypeScript
- スター
- 132
- フォーク
- 24
- 平均マージ
- 1日 16時間
- マージ済み PR(30日)
- 209
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
cncf/prow-github-actions のほかの issue
-
[quality] Unit suite's call-through @actions/core emits workflow commands: green build-test runs carry 10 failure + 10 warning fixture annotations対応中かも @hivecommons-hive が 1 日前に担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
cncf/prow-github-actions#604 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
[quality] src/server (GitHub App server) is never executed: entry point at 0 % lines, default background arm unpinned, dist-server bundle never built-and-run by any test対応中かも @hivecommons-hive が今日担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
cncf/prow-github-actions#610 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
[quality] CI's Node version follows the open engines range >=24, not the node24 runtime action.yml declares対応中かも @hivecommons-hive が 1 日前に担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 2/5 1〜3時間 初心者へのやさしさ 28/100
cncf/prow-github-actions#602 · コメント 2 件 ·
メンテナーはふだん 2 日以内に返信
-
[quality] Nothing verifies the unit test each v8-ignore hint in src/ says drives its arm; add a static guard over the 25 hints対応中かも @hivecommons-hive が 1 日前に担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
cncf/prow-github-actions#600 · コメント 2 件 ·
メンテナーはふだん 2 日以内に返信
-
agent/quality needs-kind stage/045-needs-decision testing
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
cncf/prow-github-actions#594 · コメント 3 件 ·
メンテナーはふだん 2 日以内に返信
cncf/prow-github-actions の issue をすべて見る
似ている issue
-
Parallel reticle_verify opens per-flow leases without the source lease's ignoreHTTPSErrors対応中かも @as992949791 が今日担当しました。 オープンgood first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
reticlehq/reticle#2033 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
area:quality p3-medium ready-for-agent type:docs
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
fderuiter/deruiter.dev#3589 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
manfredsteyer/angular-oauth2-oidc#1514 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
marmelab/react-admin#11431 ·
メンテナーはふだん 1 日以内に返信