Two flags in the reference said one thing and did another. `-o` was listed as a global output-format flag and the Tips section recommended `-o json` without qualification. On `tea api` it is a file name: `-o json` writes the body to a file called json and leaves stdout empty, so the next parse fails with a JSONDecodeError that looks like a server refusal. Scoped to entity commands, and api's meaning named in all three places that mention it. `--repo owner/repo` was documented as a general substitute for standing in a checkout. For `pulls create`, `pulls checkout` and `pulls clean` it is not: the slug is rejected with 'local repository required', advice that reads like the flag was missing. Verified from outside any repo — those three refuse a slug and accept a path, while pulls list, milestones, releases and times take the slug from anywhere. All three working forms are written down, including the git-worktree one (point --repo at the main checkout) and the api fallback. Closes #35 Closes #28 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1.9 KiB
tea CLI — HELPERS
See ./index.md for global options and common flags shared by all commands.
tea open, o
Open the current repository/context in a web browser.
tea notifications (aliases: notification, n)
Defaults to the current repo; --mine/-m aggregates across all your repos. Fields: id,status,updated,index,type,state,title,repository. Filters: --types/-t {issue|pull|repository|commit}, --states/-s {pinned|unread|read} (default: unread,pinned).
ls, listread, r [all | <id>]unread, u [all | <id>]pin, p [all | <id>]unpin [all | <id>]
tea clone, C <repo-slug> [target-dir]
Clone without requiring a local git install. Accepts slug forms: gitea/tea, tea, gitea.com/gitea/tea, git@gitea.com:gitea/tea, https://gitea.com/gitea/tea, ssh://gitea.com:22/gitea/tea. A host in the slug overrides --login. Options: --depth/-d, --login/-l.
tea api <endpoint>
Authenticated HTTP request to the Gitea API. Endpoints are auto-prefixed with /api/v1/ unless they start with /api/ or http(s)://. Placeholders {owner} and {repo} are filled from the repo context.
--method/-X {GET|POST|PUT|PATCH|DELETE}(default GET; switches to POST automatically when a body is provided)--field/-f key=value— string field on body (repeatable).--Field/-F key=value— typed field (numbers, booleans, null, JSON arrays/objects);@fileor@-(stdin);"null"forces literal string.--data/-d— raw JSON body (@file/@-). Incompatible with-f/-F.--header/-H key:value(repeatable)--include/-i— write status + response headers to stderr.--output/-o <file>— write response body to file (-= stdout). Not the entity commands' format flag:-o jsonhere creates a file namedjsonand prints nothing. The body is already JSON.- Quote the endpoint if it contains
?or&to prevent shell expansion.