Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

agent-guard: the +refspec force spelling bypasses the empty-rebase guard

Abierto Apto para principiantes
#1,606 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@liwenjie200543 ya está trabajando en esto.

Desde el 13/10/2026.

  • #1607 de @liwenjie200543 — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
git, python

Línea de trabajo

Lee tools/agent-guard/src/agent_guard/__init__.py cerca de guard_empty_rebase y las pruebas existentes del guard. Sigue cómo los argumentos de push identifican los refspecs forzados y cómo se resuelve la referencia de origen; después, ejecuta las pruebas pertinentes del guard. La tarea estará terminada cuando se rechace git push origin +pr:main para una rama vacía y los casos existentes con force flag sigan comportándose como se espera.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Python
Estrellas
113
Forks
95
Merge medio
10 h 48 min
PR fusionados (30 d)
348

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/magpie

Todos los issues de apache/magpie

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.