Forgejo
Dünne Hülle um die Forgejo-REST-API. Jede Ressource befindet sich in einem eigenen Skript, damit der Agent sie einzeln erkennen und aufrufen kann. SkillHone ist von diesem Skill als VCS-Backend abhängig, bleibt aber unabhängig, sodass ein anderes Backend wie GitLab oder Gitea dieselbe Workflow-Oberfläche bereitstellen kann.
Skripte
| Skript | Ressource | Repräsentative Verwendung |
|---|---|---|
scripts/issue.py | Issues | python3 scripts/issue.py create --title "Fehler" |
scripts/pr.py | Pull Requests | python3 scripts/pr.py merge 1 |
scripts/wiki.py | Wiki-Seiten | python3 scripts/wiki.py get --title "Analyse" |
scripts/repo.py | Repo-Metadaten | python3 scripts/repo.py branches |
scripts/summary.py | Aggregiertes Dashboard | python3 scripts/summary.py |
Jedes Skript unterstützt --help. Führe es aus, bevor du Flags errätst.
Konfiguration
Auflösung in dieser Reihenfolge (erster Treffer gewinnt):
- Umgebungsvariablen:
FORGEJO_URL,FORGEJO_TOKEN,FORGEJO_OWNER,FORGEJO_REPO ~/.skillhone/settings.json+~/.skillhone/identities.conf_data/forgejo_config.txtim aktuellen Arbeitsverzeichnis
Wenn nichts gesetzt ist, beendet sich das Skript mit einer klaren Meldung, die die fehlende Variable nennt.
Nutzung nach Ressource
Issues
python3 scripts/issue.py list
python3 scripts/issue.py view <N>
python3 scripts/issue.py create --title "Fix: Timeout" --body "## Problem\n..."
python3 scripts/issue.py close <N>
python3 scripts/issue.py comment <N> --body "Erledigt"
Pull Requests
python3 scripts/pr.py list
python3 scripts/pr.py view <M>
python3 scripts/pr.py create --title "Fix Timeout" --head fix/timeout --base main --body "Schließt #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 "Iteration-1-Beobachtung"
python3 scripts/wiki.py create --title "Seite" --body "Inhalt"
python3 scripts/wiki.py edit --title "Seite" --body "Aktualisierter Inhalt"
Repo-Metadaten
python3 scripts/repo.py info
python3 scripts/repo.py branches
Kombinierte Zusammenfassung
python3 scripts/summary.py
# offene Issues + offene PRs + letzte Beobachtungs-Wiki-Seite
Aufruf aus anderen Skills
Andere Skills, die unter ~/.skillhone/skills/ liegen, rufen diese Skripte über ihren absoluten Pfad auf:
python3 ~/.skillhone/skills/forgejo/scripts/issue.py list
Dadurch bleibt das VCS-Backend austauschbar. Ein GitLab- oder Gitea-Skill kann eine äquivalente Befehlsoberfläche bereitstellen, ohne die Optimierungslogik von SkillHone zu ändern.
Fallstricke
- Token mit
@-Zeichen unterbrechen die Git-Clone-URL-Einfügung. Verwende einen Token ohne@oder kodiere ihn als URL. merge --method squashwird von älteren Forgejo-Versionen nicht unterstützt. FallsUnbekannte Methodeauftritt, falle aufmergezurück.- Wiki-Seiten werden als
.md-Dateien in einem separaten Git-Repo (<repo>.wiki.git) gespeichert.wiki.pyverbirgt das, aber wenn du eine benutzerdefinierte Bearbeitung benötigst, klone das Wiki-Repo direkt.
Harte Regeln
- Gib das Forgejo-Token niemals auf stdout/stderr aus. Die Skripte schwärzen es bereits; füge es nicht in
--body-Felder ein. - Rufe die Forgejo-REST-API nicht direkt mit
curloder handgefertigtem HTTP aus SkillHone-Workflows auf. Verwende diese Backend-Skripte, damit das Laden von Anmeldedaten, die Schwärzung und der Backend-Austausch zentralisiert bleiben. cate nicht_data/forgejo_config.txt,~/.skillhone/settings.jsonoderidentities.conf, um Anmeldedaten zu ermitteln. Die Skripte lösen Anmeldedaten intern auf.- Pushe nicht direkt zu
mainüber eines dieser Skripte. Nur über PRs. - Wenn du einen 401/403 erhältst, überprüfe die Reihenfolge der Konfigurationsauflösung oben, bevor du das Skript änderst.