[quality] bundle e2e suite never drives the fixed-label (/good-first-issue, /remove-help) or built-in prefixed (/lifecycle, /stage, /status, /priority) commands through dist/index.js
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 76/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- github-actions, typescript
- 領域
- testing
調査の方向性
Start with tests/bundle/bundle.test.ts and the fake API, then read src/issueComment/handleIssueComment.ts, src/labels/fixed.ts, and src/labels/prefixed.ts. Run npx vitest run --coverage while adding tests/bundle/labelCommands.test.ts for the listed fixed-label and prefixed-command cases. Done means dist/index.js drives each command correctly, including label encoding, exclusivity, no-op behavior, and configuration failures.
索引モデルが issue の本文から書いたものです。
説明
Finding
__tests__/bundle/ is the only suite that runs the committed dist/index.js (against fakeGithub.ts). Its issue_comment inventory on main @ c48bd6d drives /help, /kind, /remove-kind, /label, /remove-label and the dynamic /level, but never the other two label-command families that src/issueComment/handleIssueComment.ts dispatches:
- Fixed-label commands (
src/labels/fixed.ts, Prow's help plugin):/good-first-issue,/remove-help,/remove-good-first-issue. Theremoveset differs per command (/remove-helpdrops bothhelp wantedandgood first issue;/remove-good-first-issuedrops onlygood first issue,docs/commands.md:66-68) and the labels contain spaces, so theDELETE .../labels/{name}encoding is a distinct path from every<prefix>/<value>label the suite already exercises. - Built-in prefixed commands (
src/labels/prefixed.ts:27-31):/lifecycle,/stage,/status(Prow default values,exclusive: true,docs/labeling.md:100-125) and/priority(yaml allowlist,exclusive: true). The suite's only exclusive-command test is/level, whose values come from the yaml mapping form; the built-in-defaults fallback insectionForand the documented "a configuration file must still exist in some tier" failure are not driven end to end. Neither is a comment carrying two exclusive commands at once (/stage+/status), which is where a prefix-scoped "remove stale labels" bug would show.
Evidence:
- Unit:
npx vitest run --coverageonmain@ c48bd6d, Node v26.10.0 — 69 files / 1447 tests,All files 99.83 | 98.35 | 100 | 99.82;src/labels/fixed.tsandsrc/labels/prefixed.tsat 100% lines. Unit coverage of these files is not the gap. - End to end:
grep -nE "good-first-issue|remove-help|/lifecycle|/stage|/status|/priority" __tests__/bundle/bundle.test.tsmatches only the/label good-first-issueallowlist test (alabels:entry, not the fixed command). The bundle child's V8 coverage is not captured in the report (#235), so the e2e evidence here is the driven-command inventory, not a line profile; unit and e2e evidence cannot be combined at line granularity.
Recommendation
Add __tests__/bundle/labelCommands.test.ts driving dist/index.js against the fake API for:
-
/good-first-issueaddsgood first issue+help wantedin one write; fails without writing when the repository lacks one of them -
/remove-helpdeletes both labels (case-insensitively, space-encoded) and/remove-good-first-issuedeletes onlygood first issue; a no-op read when neither is present -
/lifecycle stalewith a configuration that has nolifecyclekey: removeslifecycle/frozen, addslifecycle/stale; an unknown value fails without touching the issue;/remove-lifecycle; the documented no-configuration failure -
/stage beta+/status in-reviewin one comment each replace only their own prefix -
/priority highfrom the.prowlabels.yamlallowlist removespriority/lowfirst; an unlisted value fails;/remove-priority
Disjoint from every open hold-gated PR: #236 edits bundle.test.ts, #238 adds collaborationCommands.test.ts (/cc /uncc /unassign /retitle /lock /reopen), #240 adds triggerTestAndLgtmCancel.test.ts, #242 adds cronJobsInput.test.ts, #244 adds meow.test.ts; none touch a labelCommands file, src/labels/fixed.ts or the built-in prefixed commands.
Priority
- Impact: medium — unit-covered, not e2e-covered (coverage-gap priority 2); these are the commands Prow users type most after
/kindand/lgtm - Effort: low
Filed by quality agent (hold-gated mode)
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5q9t | SHA: c48bd6d
— hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88
- 主要言語
- TypeScript
- スター
- 132
- フォーク
- 23
- 平均マージ
- 1日 2時間
- マージ済み PR(30日)
- 98
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
cncf/prow-github-actions のほかの issue
-
agent/quality hive/hosted-available-lke648397-260827-5q9t kind/failing-test quality testing
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
cncf/prow-github-actions#329 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
[quality] bundle e2e never drives plain /close or the /milestone refusals through dist/index.js対応中かも @hivecommons-hive が 3 日前に担当しました。 オープンagent/quality hive/covered-by-pr hive/hosted-available-lke648397-260827-5q9t kind/cleanup quality testing
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
cncf/prow-github-actions#295 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
[quality] the cron dispatcher's jobs-input error arms and the push event route are never driven through dist/index.js対応中かも @hivecommons-hive が 7 日前に担当しました。 オープンagent/quality hive/covered-by-pr hive/hosted-available-lke648397-260827-5q9t needs-kind quality testing
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
cncf/prow-github-actions#241 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
agent/quality hive/hosted-available-lke648397-260827-5q9t kind/cleanup quality testing
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
cncf/prow-github-actions#213 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
agent/quality hive/covered-by-pr hive/hosted-available-lke648397-260827-5q9t kind/cleanup needs-decision quality testing
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
cncf/prow-github-actions#209 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
cncf/prow-github-actions の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
Effect-TS/effect#8881 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Discover carries headerEdges that nothing reads since #1914 moved E0507/E0517 to the compiler graphオープンtech-debt
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
mail processing verified
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 7 日以内に返信
-
check:passed streams:add
難易度 1/5 1時間未満 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
OpenSlides/OpenSlides#7180 ·