About forgejo-cli
A Python CLI for operating Forgejo installations, aimed at routine repository and collaboration tasks. It offers command groups for common workflows, a general API command for other endpoints, and previews for mutations.
Key features
- 01Manage issues, PRs, repositories, and related resources
- 02Call other endpoints through a general API command
- 03Paginate list and search requests
- 04Preview mutation plans with dry-run
- 05Emit one JSON result and separate diagnostics
Use cases
- 01List issues in a repository
- 02Preview creating a private repository
- 03Call a Forgejo API endpoint not covered by commands
- 04Inspect pagination responses and total counts
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ magnus919/ agent-skills --skill forgejo-cliAfter installing, type/forgejo-cliin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
README.mdV2-SPEC.mdevals/evals.jsonreferences/api-usage.mdcommand-reference.mdendpoint-routing.mdtroubleshooting.mdscripts/forgejo-clitests/test_cli.pyDetails
From the project READMEForgejo CLI v2
Run python3 scripts/forgejo-cli. --agent (default) uses FORGEJO_AGENT_TOKEN; --user uses FORGEJO_USER_TOKEN; --server URL selects an installation. Set FORGEJO_SERVER in your shell if your wrapper supplies it, otherwise pass --server explicitly.
Safety
- Mutations require
--force/--yes/-y, or--dry-run. --dry-run --jsonemits one plan withmethod,path,query, andbody; it makes no network request.--jsonwrites exactly one JSON value to stdout; diagnostics go to stderr.--pageand--limitwork for any list/search request. Add--include-responseto receive the HTTP status pluslinkandx-total-countpagination headers.--helpdoes not read credentials or contact a server. Path segments are encoded.
Common workflows
python3 scripts/forgejo-cli issue list --owner acme --repo app --json
python3 scripts/forgejo-cli --dry-run --json repo create --name demo --private
python3 scripts/forgejo-cli --dry-run --json api --method POST \
--path /api/v1/repos/acme/app/actions/variables --data '{"name":"KEY","value":"value"}'
First-class groups: issue, pr, repo, content, label, milestone, release, hook, and user. content expects base64 and update/delete require the current SHA. Use api for any other /api/v1/ endpoint; it supports JSON, raw files, multipart uploads/forms, and custom headers. Consult /api/swagger or /swagger.v1.json on the selected server. See command reference.
Choosing a command
Use a first-class command for its covered daily workflow. Use api when the operation is absent, requires version-specific fields, or needs a schema not represented by a simple flag. Before using api, read endpoint routing; read API usage for authentication, pagination, compatibility, and safe schema discovery. Read troubleshooting for 401/403/422 responses and transport failures.