1 Forge CLI
frank edited this page 2026-07-12 08:14:09 +02:00

Forge CLI

forge ist eine Kommandozeilenanwendung für Forgejo. Sie führt authentifizierte API-Operationen aus und verwendet standardmäßig das in der Konfiguration hinterlegte Forgejo-Ziel.

Grundsyntax

forge [global flags] <command> [subcommand] [argumente] [flags]

Hilfe kann auf jeder Ebene angezeigt werden:

forge --help
forge wiki --help
forge wiki create --help

Repository auswählen

Ein Repository wird mit --repo oder -R im Format [HOST/]OWNER/REPO angegeben:

forge wiki list --repo frank/forgecli
forge -R frank/forgecli repo view
forge --host repository.example.org --repo frank/forgecli issue list

Wiki-Befehle

Seiten auflisten und lesen

forge wiki list --repo frank/forgecli
forge wiki read "Forge CLI" --repo frank/forgecli
forge wiki read "Forge CLI" --repo frank/forgecli --section 2.1
forge wiki toc "Forge CLI" --repo frank/forgecli

--section liest einen einzelnen Abschnitt anhand seiner Überschriftennummer.

Seiten suchen

forge wiki search "Authentifizierung" --repo frank/forgecli
forge wiki search "CLI" --repo frank/forgecli --titles-only
forge wiki search "CLI" --repo frank/forgecli --limit 10

Seite anlegen

Der Seiteninhalt kann direkt oder über eine Datei beziehungsweise stdin übergeben werden:

forge wiki create "Neue Seite" --repo frank/forgecli \
  --body '# Überschrift'

forge wiki create "Neue Seite" --repo frank/forgecli \
  --body-file dokumentation.md \
  --message 'Dokumentation hinzufügen'

cat dokumentation.md | forge wiki create "Neue Seite" \
  --repo frank/forgecli --body-file -

--message setzt die Commit-Nachricht des Wiki-Commits.

Seite aktualisieren

Eine komplette Seite wird ersetzt mit:

forge wiki update "Forge CLI" --repo frank/forgecli \
  --body-file dokumentation.md \
  --message 'Dokumentation aktualisieren'

Eine Seite kann beim Aktualisieren mit --title umbenannt werden. Einzelne Abschnitte lassen sich mit --section ersetzen:

forge wiki update "Forge CLI" --repo frank/forgecli \
  --section 2.1 --body 'Aktualisierter Abschnitt'

Gezielte Textänderungen sind mit --replace-old und --replace-new möglich:

forge wiki update "Forge CLI" --repo frank/forgecli \
  --replace-old 'alter Text' \
  --replace-new 'neuer Text'

Seite löschen

forge wiki delete "Alte Seite" --repo frank/forgecli

Vor dem Löschen sollte der exakte Seitentitel mit forge wiki list geprüft werden.

Globale Optionen

Die Wiki-Befehle unterstützen unter anderem:

  • --host string: Forgejo-Host festlegen.
  • -R, --repo string: Repository auswählen.
  • -q, --jq string: JSON-Ausgabe mit jq filtern.
  • --json[=fields]: JSON mit allen oder ausgewählten Feldern ausgeben.
  • --template string: JSON mit einem Go-Template formatieren.
  • -h, --help: Hilfe anzeigen.

Beispiele für maschinenlesbare Ausgabe:

forge wiki list --repo frank/forgecli --json
forge wiki list --repo frank/forgecli --json title --jq '.[].title'
forge wiki read "Forge CLI" --repo frank/forgecli --template '{{.content}}'

Konfiguration und Authentifizierung

Das Standardziel und der Benutzer werden über die Forge-Konfiguration bestimmt:

forge config list

Für die Anmeldung und weitere Authentifizierungsoptionen:

forge auth --help

Empfohlener Ablauf

  1. Mit forge <command> --help die Optionen prüfen.
  2. Das Ziel mit --repo [HOST/]OWNER/REPO festlegen.
  3. Inhalte bei Schreiboperationen mit --body oder --body-file übergeben.
  4. Mit --message eine aussagekräftige Commit-Nachricht setzen.
  5. Ausgabe bei Bedarf mit --json, --jq oder --template weiterverarbeiten.