[Bug]: Forgejo skipped status keeps watch_pull_request pending when no required-check policy is set
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 64/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- github, typescript
調査の方向性
packages/source-control-forgejo/src/server/forgejoPullRequestJson.tsから始めて、forgejoChecksがForgejoのジョブ状態をどのように対応付けているかを追い、その後evaluatePullRequestWatchを追って、これらの状態が全ステータスのゲートにどう影響するかを確認してください。報告されたsuccess、success、skippedの各ステータスについて、現在の動作と期待される結果を比較してください。ジョブが失敗せずに完了したとき、1つがスキップされた場合も含めて、監視がすべてのチェックに合格したと報告すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- Use a Forgejo repository whose base branch has no status-check policy (
enable_status_check: false, so no required contexts). - Add a workflow job that only runs on push, for example
deploy: { needs: test, if: github.event_name == 'push' }. - Open a pull request. Once CI finishes, the head commit reports:
AI Review / review (pull_request) success CI / test (pull_request) success CI / deploy (pull_request) skipped - Call
watch_pull_requestfor the pull request and let all jobs finish.
Expected behavior
The watch wakes the agent with "All 3 checks passed", because every job has finished and none failed.
Actual behavior
The watch never reports the passed checks. forgejoChecks in packages/source-control-forgejo/src/server/forgejoPullRequestJson.ts maps every state other than success, failure and error to pending, so the skipped job keeps the all-status gate open. In our case the watch stayed silent for almost six hours until we merged the pull request by hand.
This is the part of #16575 that its closing comment left open ("skipped statuses still block watches when required-check policy is absent"); the comment asked for a separate issue. #18775 covers branches with a required-check policy. #16668 already contains the fix for this case. Its description notes that no real Forgejo instance was used; this report confirms the failure on a live Forgejo 17.0.0 instance.
Impact
Major degradation or frequent failure
Every pull request in a repository with a push-only job hits this, so watch_pull_request cannot be used there.
Version or commit
0.1.2-nightly.20261021.3499 (already contains #18775)
Environment
T3 Code desktop nightly on macOS 27.0.1, Forgejo 17.0.0+gitea-1.22.0
Logs or stack traces
pull request watch ended {"reason":"merged","minutes":348,"quietMinutes":348,"wakes":0,"reads":172,"partial":false}
We also ran the installed nightly's bundled forgejoChecks and evaluatePullRequestWatch against the three statuses above:
- current mapping:
skippedbecomespending,passed: false, no change reported - with
skippedpreserved, as in #16668: the same evaluator reportschecks-passedwithcount: 3
Workaround
Required status checks on the base branch let the watch gate only on those (#18775), but that changes the merge policy, and a required context that never reports (for example a workflow with paths-ignore on a docs-only change) then blocks merging. We currently poll the Forgejo API from the agent instead of using watch_pull_request.
Investigated with an agent in T3 Code; the values above come from the live instance and the installed app bundle.
- 主要言語
- TypeScript
- スター
- 24.8k
- フォーク
- 6.4k
- 平均マージ
- 4時間 35分
- マージ済み PR(30日)
- 174
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pingdotgg/t3code のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
bug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
MCP endpoint matches the Authorization scheme case-sensitively and logs the same reason for "absent" and "wrong scheme" (ChatGPT connector gets missing_bearer_token)対応中かも @shethshlok が 1 日前に担当しました。 オープンbug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
pingdotgg/t3code の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
braintrustdata/braintrust-sdk-javascript#2659 ·
メンテナーはふだん 1 日以内に返信
-
body-parser 2.3.0 in the published ai-dial-chat-bff image is vulnerable (CVE-2026-111181, HIGH)対応中かも @illya-havsiyevych が今日担当しました。 オープンbug
難易度 1/5 1〜3時間 初心者へのやさしさ 87/100
epam/ai-dial-chat#9566 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
はさみアイコンを修正するオープンbug
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
-
area: core
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信