¿Qué hace Forgejo?
Capa delgada sobre la API REST de Forgejo. Cada recurso vive en su propio script para que el agente pueda descubrirlos e invocarlos individualmente. SkillHone depende de esta habilidad como backend VCS, pero se mantiene independiente para que otro backend como GitLab o Gitea pueda ofrecer la misma superficie de flujo de trabajo.
Scripts
| Script | Recurso | Uso representativo |
|---|---|---|
scripts/issue.py | Issues | python3 scripts/issue.py create --title "Bug" |
scripts/pr.py | Pull requests | python3 scripts/pr.py merge 1 |
scripts/wiki.py | Páginas wiki | python3 scripts/wiki.py get --title "Análisis" |
scripts/repo.py | Metadatos del repositorio | python3 scripts/repo.py branches |
scripts/summary.py | Panel de resumen agregado | python3 scripts/summary.py |
Todos los scripts soportan --help. Ejecútalo antes de adivinar las banderas.
Configuración
Resuelta en este orden (coincide la primera):
- Variables de entorno:
FORGEJO_URL,FORGEJO_TOKEN,FORGEJO_OWNER,FORGEJO_REPO ~/.skillhone/settings.json+~/.skillhone/identities.conf_data/forgejo_config.txten el directorio de trabajo actual
Si no hay nada configurado, el script finaliza con un mensaje claro indicando la variable faltante.
Uso por Recurso
Issues
python3 scripts/issue.py list
python3 scripts/issue.py view <N>
python3 scripts/issue.py create --title "Corrección: timeout" --body "## Problema\n..."
python3 scripts/issue.py close <N>
python3 scripts/issue.py comment <N> --body "Hecho"
Pull Requests
python3 scripts/pr.py list
python3 scripts/pr.py view <M>
python3 scripts/pr.py create --title "Corrección timeout" --head fix/timeout --base main --body "Cierra #1"
python3 scripts/pr.py review <M> --approve
python3 scripts/pr.py merge <M> --method merge
python3 scripts/pr.py comment <M> --body "LGTM"
Wiki
python3 scripts/wiki.py list
python3 scripts/wiki.py get --title "Observación-Iteración-1"
python3 scripts/wiki.py create --title "Página" --body "contenido"
python3 scripts/wiki.py edit --title "Página" --body "contenido actualizado"
Metadatos del Repositorio
python3 scripts/repo.py info
python3 scripts/repo.py branches
Resumen Combinado
python3 scripts/summary.py
# issues abiertos + PRs abiertos + página wiki de observación más reciente
Invocación Desde Otras Habilidades
Otras habilidades que residen en ~/.skillhone/skills/ llaman a estos scripts mediante su
ruta absoluta:
python3 ~/.skillhone/skills/forgejo/scripts/issue.py list
Esto mantiene reemplazable el backend VCS. Una habilidad de GitLab o Gitea puede exponer una superficie de comandos equivalente sin cambiar la lógica de optimización de SkillHone.
Advertencias
- Los tokens con caracteres
@rompen la inyección de URL de clonación de git. Usa un token sin@o codifícalo en URL. merge --method squashno es compatible con versiones antiguas de Forgejo. Si obtienesUnknown method, vuelve amerge.- Las páginas wiki se almacenan como archivos
.mden un repositorio git separado (<repo>.wiki.git).wiki.pyoculta eso, pero si necesitas edición personalizada, clona el repositorio wiki directamente.
Reglas Estrictas
- Nunca imprimas el token de Forgejo en stdout/stderr. Los scripts ya lo redactan; no lo pegues en campos
--body. - No llames a la API REST de Forgejo directamente con
curlo HTTP artesanal desde los flujos de trabajo de SkillHone. Usa estos scripts de backend para que la carga de credenciales, redacción y reemplazo del backend se mantengan centralizados. - No hagas
cata_data/forgejo_config.txt,~/.skillhone/settings.jsonoidentities.confpara descubrir credenciales. Los scripts resuelven las credenciales internamente. - No hagas push directamente a
mainmediante ninguno de estos scripts. Solo PRs. - Cuando obtengas un 401/403, vuelve a verificar el orden de resolución de configuración anterior antes de modificar el script.