[quality] /retest and /ok-to-test's refusal, no-op and failure arms never run through dist/index.js
メンテナーはふだん 2 日以内に返信
関連するプルリクエストがすでにマージされています。
- #304 @hivecommons-hive による — マージ済み
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- github, node.js, typescript
- 領域
- testing-qa
調査の方向性
Start with __tests__/bundle/bundle.test.ts, __tests__/bundle/triggerTestAndLgtmCancel.test.ts, and the fake GitHub setup they use; then read src/issueComment/trigger.ts to map the listed arms. Add bundle-level cases in __tests__/bundle/triggerArms.test.ts and run npm run test:coverage:e2e. Done means the uncovered arms are exercised through dist/index.js with the specified outcomes and request sequences asserted.
索引モデルが issue の本文から書いたものです。
説明
Finding
src/issueComment/trigger.ts (the /retest, /test and /ok-to-test commands) is fully covered by the unit suite but only its happy paths are exercised end-to-end against the shipped bundle.
Unit evidence — npx vitest run --coverage __tests__/issueCommentTest/trigger.test.ts __tests__/pullReq on main @ 3fc21f2 (Node v26.10.0, vitest 5.0.3): trigger.ts | 100 | 100 | 100 | 100.
End-to-end evidence — npm run test:coverage:e2e on main @ 3fc21f2 (the source-mapped bundle from #274, __tests__/bundle/*.test.ts, 142 tests): trigger.ts 108/132 statements, 81.67 % lines. Uncovered through dist/index.js:
| lines | arm |
|---|---|
| 35 | /retest on an issue that is not a pull request |
| 43–51 | /retest with no failed run: the "N in progress, N successful" summary comment, with and without a summary |
| 56–57 | /retest when every rerun-failed-jobs answers 409: "already being re-run" |
| 114 | /ok-to-test on an issue that is not a pull request |
| 121, 127–128 | /ok-to-test on a pull request already carrying ok-to-test with nothing awaiting approval |
| 155–156, 158 | approvePendingRuns 403 (names actions: write) and any other approval failure |
| 216 | /ok-to-test by the pull request author (refuseAuthor) |
| 239 | the listWorkflowRunsForRepo failure |
| 265 | a rerun failure that is neither 409 nor 403 |
| 299 | the rocket reaction failing (warning only) |
| 309 | refuse when the refusal comment itself cannot be posted |
| 188, 207, 293 | payload-shape guards: pull_request without a head sha, issue_comment without an issue number, a comment without an id |
The existing /retest and /ok-to-test cases in __tests__/bundle/bundle.test.ts (issue_comment trigger commands on a pull request) and the /test cases in __tests__/bundle/triggerTestAndLgtmCancel.test.ts cover only the success paths plus /test's 409/403 arms. None of the open hold-gated bundle PRs (#242–#302) touch trigger.ts.
Recommendation
- add
__tests__/bundle/triggerArms.test.tsdriving each/retestand/ok-to-testarm above throughdist/index.jsagainst the fake GitHub, asserting the exit status,::error::lines, the comment bodies and the exact request sequence after authorization (hold-gated PR open)
The three payload-shape guards (188, 207, 293) are deliberately left out: they need a malformed event payload rather than a GitHub API answer, and the unit suite already pins them.
Priority
- Impact: medium — unit-covered, e2e-uncovered; these are the arms a contributor actually hits (
/retestwith nothing failed,/ok-to-testby the author, a token withoutactions: write) - 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日 17時間
- マージ済み PR(30日)
- 218
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
cncf/prow-github-actions のほかの issue
-
[quality] owners.ts: 13 behavioural mutants survive the suite, incl. a shared group cache key that gives every team the first team's members対応中かも @hivecommons-hive が今日担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
cncf/prow-github-actions#574 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
[quality] Unit msw servers reject unhandled requests but no test fails when the code under test swallows the rejection (158 tests run through fallbacks)対応中かも @hivecommons-hive が 2 日前に担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
cncf/prow-github-actions#570 · コメント 3 件 ·
メンテナーはふだん 2 日以内に返信
-
[quality] bundle fake answers unrouted requests with a plain 404; the harness should assert on unexpected traffic outside application fallbacks対応中かも @hivecommons-hive が 2 日前に担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 3/5 半日 初心者へのやさしさ 48/100
cncf/prow-github-actions#568 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
[quality] sweep.ts delayed-reviewers OWNERS guard (line 80 false arm) is covered by neither the unit nor the bundle suite対応中かも @hivecommons-hive が 3 日前に担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 2/5 1〜3時間 初心者へのやさしさ 25/100
cncf/prow-github-actions#560 · コメント 2 件 ·
メンテナーはふだん 2 日以内に返信
-
Follow-up: strengthen test contracts, CI enforcement, release delivery, and quality triage対応中かも @hivecommons-hive が 3 日前に担当しました。 オープンkind/cleanup quality stage/040-covered-by-pr tests
難易度 5/5 1週間以上 初心者へのやさしさ 18/100
cncf/prow-github-actions#554 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
cncf/prow-github-actions の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
farion1231/cc-switch#8829 ·
メンテナーはふだん 1 日以内に返信
-
[core-client] Remove unused hand-maintained transport helpers after the definition-table cutoverオープンdoc-audit enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100