Files

2.5 KiB

Forgejo CLI v2 — safe repository automation

Manage a Forgejo server from the terminal without hand-written curl or accidental mutations. It covers daily repository work—issues, pull requests, repositories, contents, metadata, webhooks, and settings—and has a guarded API escape hatch for the rest.

Why Install This Skill

The CLI gives agents one predictable safety contract: JSON is machine-readable, diagnostics stay off stdout, mutations require confirmation, and dry runs never need a token or network access. For version-specific features such as Actions runners and variables, packages, organizations, teams, admin APIs, notifications, and permissions, use the generic API command with your server's Swagger schema.

It deliberately does not try to duplicate every API endpoint. Instead, it offers guarded first-class commands for common repository work and a generic client for the rest. The references explain when to use each, how to select a compatible schema, and how to handle pagination and token scopes.

What You Get

Contents Purpose
scripts/forgejo-cli Argparse Forgejo API v1 client
references/command-reference.md Endpoint and payload guide
references/api-usage.md Authentication, pagination, versioning, and schema-discovery procedure
references/endpoint-routing.md Decision guide for first-class commands versus generic API calls
references/troubleshooting.md Safe diagnosis of API and transport failures
V2-SPEC.md v2 acceptance criteria
tests/ Offline stdlib contract tests

Quick Start

Set FORGEJO_AGENT_TOKEN (default) or FORGEJO_USER_TOKEN, then run:

python3 scripts/forgejo-cli --dry-run --json repo create --name demo --private
python3 scripts/forgejo-cli --server https://forge.example api --method GET --path /api/v1/user --json
python3 scripts/forgejo-cli --server https://forge.example --page 1 --limit 50 --include-response issue list --owner acme --repo app --json

Triggers

  • Managing Forgejo/Gitea issues, PRs, repos, file contents, releases, or hooks.
  • Calling a version-specific /api/v1/ endpoint safely.
  • Previewing a Forgejo mutation.

Requirements

Python 3.8+ and requests for live API calls. --help and --dry-run need no token or dependency. Set FORGEJO_AGENT_TOKEN or FORGEJO_USER_TOKEN for token authentication. A deliberate Authorization header supports other documented schemes, but avoid putting secrets directly in shell history. Consult your Forgejo server's /api/swagger or /swagger.v1.json for exact schemas.