Forgejo
Enveloppe légère autour de l'API REST Forgejo. Chaque ressource vit dans son propre script pour que l'agent puisse les découvrir et les invoquer individuellement. SkillHone dépend de cette compétence comme backend VCS, mais elle reste indépendante afin qu'un autre backend tel que GitLab ou Gitea puisse offrir la même surface de workflow.
Scripts
| Script | Ressource | Utilisation représentative |
|---|---|---|
scripts/issue.py | Tickets | python3 scripts/issue.py create --title "Bug" |
scripts/pr.py | Pull requests | python3 scripts/pr.py merge 1 |
scripts/wiki.py | Pages wiki | python3 scripts/wiki.py get --title "Analyse" |
scripts/repo.py | Métadonnées du dépôt | python3 scripts/repo.py branches |
scripts/summary.py | Tableau de bord agrégé | python3 scripts/summary.py |
Tous les scripts supportent --help. Exécutez-le avant de deviner les options.
Configuration
Résolue dans cet ordre (la première correspondance l'emporte) :
- Variables d'environnement :
FORGEJO_URL,FORGEJO_TOKEN,FORGEJO_OWNER,FORGEJO_REPO ~/.skillhone/settings.json+~/.skillhone/identities.conf_data/forgejo_config.txtdans le répertoire de travail courant
Si rien n'est défini, le script se termine avec un message clair indiquant la variable manquante.
Utilisation par ressource
Tickets
python3 scripts/issue.py list
python3 scripts/issue.py view <N>
python3 scripts/issue.py create --title "Correctif : timeout" --body "## Problème\n..."
python3 scripts/issue.py close <N>
python3 scripts/issue.py comment <N> --body "Fait"
Pull Requests
python3 scripts/pr.py list
python3 scripts/pr.py view <M>
python3 scripts/pr.py create --title "Correctif timeout" --head fix/timeout --base main --body "Ferme #1"
python3 scripts/pr.py review <M> --approve
python3 scripts/pr.py merge <M> --method merge
python3 scripts/pr.py comment <M> --body "OK"
Wiki
python3 scripts/wiki.py list
python3 scripts/wiki.py get --title "Iteration-1-Observation"
python3 scripts/wiki.py create --title "Page" --body "contenu"
python3 scripts/wiki.py edit --title "Page" --body "contenu mis à jour"
Métadonnées du dépôt
python3 scripts/repo.py info
python3 scripts/repo.py branches
Résumé combiné
python3 scripts/summary.py
# tickets ouverts + PR ouvertes + dernière page wiki d'observation
Appel depuis d'autres compétences
Les autres compétences situées sous ~/.skillhone/skills/ appellent ces scripts via leur
chemin absolu :
python3 ~/.skillhone/skills/forgejo/scripts/issue.py list
Cela permet de remplacer le backend VCS. Une compétence GitLab ou Gitea peut exposer une surface de commande équivalente sans modifier la logique d'optimisation de SkillHone.
Pièges
- Les tokens contenant le caractère
@brisent l'injection d'URL git clone. Utilisez un token sans@ou encodez-le en URL. merge --method squashn'est pas supporté par les anciennes versions de Forgejo. Si vous rencontrezUnknown method, revenez àmerge.- Les pages wiki sont stockées sous forme de fichiers
.mddans un dépôt git séparé (<repo>.wiki.git).wiki.pymasque cela, mais si vous avez besoin d'une édition personnalisée, clonez le dépôt wiki directement.
Règles strictes
- N'imprimez jamais le token Forgejo dans les logs stdout/stderr. Les scripts le masquent déjà ; ne le collez pas dans les champs
--body. - N'appelez pas l'API REST Forgejo directement avec
curlou des requêtes HTTP artisanales depuis les workflows SkillHone. Utilisez ces scripts backend pour que le chargement des identifiants, le masquage et le remplacement du backend restent centralisés. - Ne faites pas
catde_data/forgejo_config.txt,~/.skillhone/settings.json, ouidentities.confpour découvrir les identifiants. Les scripts les résolvent en interne. - Ne poussez pas directement sur
mainvia l'un de ces scripts. PR uniquement. - Lorsque vous obtenez une 401/403, revérifiez l'ordre de résolution de la configuration ci-dessus avant de modifier le script.