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

[BUG]: cleanup-pr-previews never removes previews of deleted PRs

Aperta Adatta ai principianti
#2,952 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
84/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
github, github-actions, shell
Ambito
ci-cd, devops

Direzione di ricerca

Inizia con ci/cleanup-pr-previews intorno alle righe 137-139 ed esegui il comando dry-run documentato dalla radice del repository. Riproduci il comportamento 404 della PR #2308, quindi verifica che la gestione dello stato distingua una PR eliminata dagli altri errori dell'API e rimuova solo la cartella di preview appropriata.

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

Descrizione

triage
Is this a duplicate?
Type of Bug

Silent Failure

Component

Infrastructure

Describe the bug

ci/cleanup-pr-previews is supposed to remove preview folders for closed, merged, and deleted PRs. The deleted-PR case never matches.

For a PR that no longer exists, gh api ... --jq '.state' exits non-zero but still prints the 404 JSON body to stdout. The || echo "not_found" fallback is then appended to that output instead of replacing it:

https://github.com/NVIDIA/cuda-python/blob/f9ed2bdaede7b66e6323dc7772a93953af39dfc7/ci/cleanup-pr-previews#L137-L139

PR_STATUS becomes {"message":"Not Found",...}not_found. That falls through to the *) branch, which logs UNKNOWN and keeps the folder.

This is happening now with docs/pr-preview/pr-2308 on gh-pages. #2308 no longer exists (both the pulls and issues endpoints return 404), and its preview has been there since 2026-07-07. The last scheduled run logged:

[UNKNOWN] PR #2308 has unexpected status: {"message":"Not Found","documentation_url":"https://docs.github.com/rest/pulls/pulls#get-a-pull-request","status":"404"}not_found
...
Folders to remove: 0

https://github.com/NVIDIA/cuda-python/actions/runs/36217108226

How to Reproduce

Run the script in dry-run mode from the repo root (read-only; it needs GH_TOKEN):

GH_TOKEN="$(gh auth token)" ci/cleanup-pr-previews --dry-run

Relevant output on current main:

[CHECK] Checking PR #2308...
[UNKNOWN] PR #2308 has unexpected status: {"message":"Not Found","documentation_url":"https://docs.github.com/rest/pulls/pulls#get-a-pull-request","status":"404"}not_found
...
Total PR preview folders: 25
Open PRs: 24
Folders to remove: 0

One of the 25 folders belongs to a PR that no longer exists, but nothing is marked for removal.

The failing call on its own:

PR_STATUS=$(gh api repos/NVIDIA/cuda-python/pulls/2308 \
    --header "Accept: application/vnd.github+json" \
    --jq '.state' 2>/dev/null || echo "not_found")
printf '[%s]\n' "$PR_STATUS"

With gh 2.97.0 this prints:

[{"message":"Not Found","documentation_url":"https://docs.github.com/rest/pulls/pulls#get-a-pull-request","status":"404"}not_found]
Expected behavior

A 404 from the pulls endpoint is classified as not_found, and the folder is removed. A fix should keep other failures (network errors, 5xx) out of the removal path, so a transient API error can't delete an open PR's preview.

#2914 also edits this script, though not these lines. I can send a small fix for the status check, before or after #2914 lands, whichever is easier to review.

Lingua principale
Cython
Stelle
3.4k
Fork
329
Merge medio
1g 13h
PR unite (30g)
107

Preparare l'ambiente

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 NVIDIA/cuda-python

Tutte le issue di NVIDIA/cuda-python

Issue simili

Altre issue su DevOps

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.