agent-guard: the +refspec force spelling bypasses the empty-rebase guard
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
Direzione di ricerca
Leggi tools/agent-guard/src/agent_guard/__init__.py nella sezione intorno a guard_empty_rebase e i test esistenti del guard. Segui il modo in cui gli argomenti di push identificano i refspec forzati e come viene risolta la ref sorgente, quindi esegui i test pertinenti del guard. Il lavoro è completato quando git push origin +pr:main viene rifiutato per un branch vuoto e i casi esistenti con force flag continuano a comportarsi come previsto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What's broken
The bundled empty-rebase guard recognizes only -f, --force and --force-with-lease[=...] as a force-push. git-push(1) documents a + refspec prefix as equivalent to --force for that refspec, so git push origin +empty-branch:main — a standard force-push spelling — reaches the push without the guard firing. The guard exists because force-pushing a branch with 0 commits over its base to a PR head auto-closes the PR and revokes maintainer write access.
Where
guard_empty_rebase in tools/agent-guard/src/agent_guard/__init__.py (line ~882 on main @ dadb315c): the forced check scans only flags, and the src-ref resolution keeps the leading +, so even recognizing the flag alone would not be enough.
Reproduce
Repo with a bare origin (origin/HEAD -> main), empty branch pr:
git push --force origin pr:main # denied by the guard
git push origin +pr:main # allowed — same semantics, no deny
Both spellings have identical push semantics; the second one is allowed through.
Suggested fix
Treat any refspec positional starting with + as forced, and strip the prefix before resolving src (git rev-parse +ref fails and would fail open). Patch and tests ready; happy to send a PR.
- Lingua principale
- Python
- Stelle
- 113
- Fork
- 95
- Merge medio
- 11h 17m
- PR unite (30g)
- 332
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/magpie
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-2 giorni Idoneità per principianti 64/100
I maintainer di solito rispondono entro 1 giorno
-
bug capability:platform family:docs family:setup
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
capability:platform enhancement family:ci family:setup
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
capability:platform enhancement family:setup family:tools
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/magpie
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
common-workflow-language/cwl-utils#477 ·
I maintainer di solito rispondono entro 1 giorno
-
Add dependabotApertafeat
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 72/100
open-nudge/opentemplate#204 ·
I maintainer di solito rispondono entro 1 giorno
-
github-stale-ci-pr-closer: KV state is double-wrapped, never persists, and hits the depth-32 limitForse già presa @VascoSch92 l’ha presa oggi. Apertapriority:medium ready-for-dev
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenHands/extensions#781 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
curriculum documentation quality
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
githubnext/gh-aw-workshop#4638 ·
I maintainer di solito rispondono entro 1 giorno