mirror of
https://github.com/magnus919/agent-skills.git
synced 2026-09-17 14:36:29 +03:00
CLI wrapper for the Forgejo/Gitea REST API v1. Commands: - me: current user profile - repos: list user repositories - search: search repositories by query - issues: list issues in a repo (filters out PRs) - view: view issue or PR details with body, labels, milestone - prs: list pull requests with head/base branch info All cli-builder patterns: --json, --dry-run, --quiet, --verbose, lazy auth, emit() dual-output, structured logging, pre-parsed global flags. Auth via FORGEJO_TOKEN (token auth header). Signed-off-by: Jasper <magnus@groktop.us>
4.3 KiB
4.3 KiB
name, description, license, compatibility, metadata
| name | description | license | compatibility | metadata | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| forgejo-cli | Interact with a Forgejo or Gitea self-hosted Git forge from the terminal: list repositories, search repos, manage issues, view pull requests, and get user info. Use when the user mentions Forgejo, Gitea, a self-hosted Git server, or asks about repos, issues, PRs, or code review. | MIT | Requires FORGEJO_TOKEN env var (generate from Settings → Applications → Personal Access Tokens), FORGEJO_SERVER, Python 3.8+, and the `requests` library. |
|
forgejo-cli — Forgejo/Gitea Git Forge from the Terminal
Interact with a self-hosted Forgejo or Gitea server via the REST API v1. List repositories, search, manage issues, and view pull requests.
Setup
- Generate a personal access token: Settings → Applications → Create Personal Access Token
- Set environment variables:
export FORGEJO_SERVER="https://git.your-domain.com"
export FORGEJO_TOKEN="your-personal-access-token"
--help and --dry-run work without credentials.
Essential Commands
me — Current user profile
forgejo-cli me # your account info
forgejo-cli me --json # machine-readable
repos — List your repositories
forgejo-cli repos # all your repos
forgejo-cli repos --limit 100 # more results
forgejo-cli repos --json # machine-readable
search — Search repositories
forgejo-cli search --query "cli" # by name/description
forgejo-cli search --query "infra" --limit 5 # top 5
forgejo-cli search --query "docs" --json # machine-readable
issues — List issues in a repo
forgejo-cli issues --repo owner/repo # open issues
forgejo-cli issues --repo owner/repo --state closed
forgejo-cli issues --repo owner/repo --state all --limit 50
forgejo-cli issues --repo owner/repo --json
Forgejo's issues endpoint also returns pull requests — the CLI filters them out automatically.
view — View an issue or PR
forgejo-cli view --repo owner/repo --issue 42 # full details
forgejo-cli view --repo owner/repo --issue 42 --json
Shows: number, title, state, author, body, labels, milestone, assignee, timestamps, and whether it's a pull request.
prs — List pull requests
forgejo-cli prs --repo owner/repo # open PRs
forgejo-cli prs --repo owner/repo --state merged # merged PRs
forgejo-cli prs --repo owner/repo --state all # all PRs
forgejo-cli prs --repo owner/repo --json
Shows: number, title, state, author, head and base branches, and merge status.
Global Flags
All flags work in any position:
forgejo-cli --json issues --repo owner/repo # flag before subcommand
forgejo-cli issues --repo owner/repo --json # flag after subcommand
forgejo-cli --dry-run issues --repo owner/repo # preview
forgejo-cli --quiet repos # suppress non-essential output
Known Gotchas
- Repo format must be
owner/repo(e.g.--repo myorg/my-project). Forgejo does not accept bare repo names. - Issues and PRs share an endpoint — The Forgejo API returns pull requests mixed into the issues list. The CLI filters PRs out when listing issues. To view PRs, use
prs. - Pagination — The Forgejo API paginates with
pageandlimitparams. The CLI sets reasonable defaults but doesn't auto-page. Use--limitto control results. - Token permissions — Personal access tokens are scoped per-repo or globally. A 403 on a specific repo usually means the token doesn't have access to it.
- Authorization header format — Forgejo/Gitea uses
Authorization: token YOUR_TOKEN, notBearer. The CLI handles this automatically.
References
- scripts/forgejo-cli — The CLI binary. Built following the cli-builder patterns: non-interactive,
--json,--dry-run,--quiet,--verbose, dual-output viaemit(), lazy auth, structured logging. - Forgejo REST API docs — Official API reference.