An explicit --repo slug makes tea skip local-repo setup, but pr create unconditionally needs the local repo handle and dies with 'local repository required' — the documented 'all flags explicit' rule was the trap. Root-caused shipping PR #175. tea-cli.md + pr-process template fixed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.9 KiB
Gitea Access (tea CLI)
Never access the Gitea API directly — use the tea CLI with all required flags to bypass interactive mode.
Always pass --login schweitz --repo jpmschweitzer/settled-reach --output simple to avoid TTY prompts.
# List open PRs
tea pr list --login schweitz --repo jpmschweitzer/settled-reach --state open --output simple
# View a PR with comments
tea pr --login schweitz --repo jpmschweitzer/settled-reach --comments -o simple <PR_NUMBER>
# Post a comment on a PR (or issue) — use @filepath for long comments
tooling/tea-comment <NUMBER> @/tmp/review.md
tooling/tea-comment <NUMBER> "short inline comment"
# Approve a PR
tea pr approve --login schweitz --repo jpmschweitzer/settled-reach <PR_NUMBER>
# List issues
tea issue list --login schweitz --repo jpmschweitzer/settled-reach --state open --output simple
Key rules
- All flags must be explicit — omitting
--loginor--repotriggers interactive prompts that crash in Claude Code (no TTY). One exception:tea pr createmust OMIT--repo— see Pull requests below. - Use
--output simplefor machine-readable output (no table borders) - For comments, use
tooling/tea-comment <number> @/tmp/file.mdfor long comments (write to file first, then pass@filepath). Short inline strings also work:tooling/tea-comment <number> "body". The@filepathform avoids$()subshells which break permission matching. tea pr rejectdoes not work on your own PRs — usetea commentinstead- Run
teafrom the main checkout, never a linked worktree — its go-git can't read a worktree's.gitfile and errors with "local/remote repository required".tea pr close/commenttake explicit--login/--reposo cwd barely matters for them, buttea pr createresolves the repo from the local checkout's remote (see below) — that is why it must run from the main repo. - Never delete protected branches:
main,maintenance,server,client,copy,audio,visual,ciare protected on Gitea. Do not usetea pr clean,git push --delete, orgit branch -Don these branches.
Pull requests
Use tea (Gitea CLI), not gh (GitHub CLI). The remote is Gitea at git.schweitz.internal.
tea pr create is the one command that must omit --repo: an explicit
--repo <slug> makes tea skip local-repo setup, but pr create unconditionally
needs the local repo handle (it checks whether the head branch is pushed) and
dies with local repository required — the flag causes the failure it
suggests fixing. Run it from the main checkout and let tea infer the repo
from origin's URL. (This inference is also why the login's ssh_host in
~/.config/tea/config.yml must match the remote host — currently
git.schweitz.net.)
tea pr create \
--login schweitz \
--title "feat(scope): short description" \
--description "PR body here" \
--base main \
--head branch-name