Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Bug]: Forgejo skipped status keeps watch_pull_request pending when no required-check policy is set

Aperta Adatta ai principianti
#23,716 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
64/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
github, typescript
Ambito
devtools, testing

Direzione di ricerca

Inizia da packages/source-control-forgejo/src/server/forgejoPullRequestJson.ts e segui come forgejoChecks mappa gli stati dei job Forgejo; poi segui evaluatePullRequestWatch per vedere come questi stati influiscono sulla condizione relativa a tutti gli stati. Confronta il comportamento attuale per gli stati segnalati success, success e skipped con il risultato atteso. Il lavoro è completato quando il monitoraggio indica che tutti i controlli sono superati se i job terminano senza errori, anche quando uno viene saltato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
  1. Use a Forgejo repository whose base branch has no status-check policy (enable_status_check: false, so no required contexts).
  2. Add a workflow job that only runs on push, for example deploy: { needs: test, if: github.event_name == 'push' }.
  3. 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
    
  4. Call watch_pull_request for 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: skipped becomes pending, passed: false, no change reported
  • with skipped preserved, as in #16668: the same evaluator reports checks-passed with count: 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.

Lingua principale
TypeScript
Stelle
24.8k
Fork
6.4k
Merge medio
4h 35m
PR unite (30g)
174

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di pingdotgg/t3code

Tutte le issue di pingdotgg/t3code

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.