diff --git a/.claude/skills/gitea-cli/SKILL.md b/.claude/skills/gitea-cli/SKILL.md new file mode 100644 index 0000000..bcf195b --- /dev/null +++ b/.claude/skills/gitea-cli/SKILL.md @@ -0,0 +1,117 @@ +--- +name: gitea-cli +description: | + Use this skill whenever you need to interact with Gitea: creating pull requests, + listing issues, managing branches, checking PR status, or any other Gitea repo + operations in this project. The CLI tool is `tea`, already configured with login + `allanjsouza` pointing to `gitea.allanjsouza.cloud`. Use this skill any time the + user mentions PRs, pull requests, issues, Gitea, or asks you to open/create/list + anything on the remote repo — even if they don't say "tea" explicitly. +--- + +# Gitea CLI Skill (`tea`) + +Gitea instance: `gitea.allanjsouza.cloud` +Login configured: `allanjsouza` +Repo remote: `ssh://git@gitea.allanjsouza.cloud:2222/allanjsouza/ctgwf.git` + +## Critical: No-TTY Mode + +`tea` tries to open an interactive TTY for some operations. This always fails in +Claude Code. Always pass all required fields as flags — never rely on interactive +prompts. When in doubt, check `tea -h` and supply every required flag +explicitly. + +## Creating a Pull Request + +```bash +tea pulls create \ + --title "feat: short description" \ + --description "$(cat <<'EOF' +## Summary +- bullet 1 +- bullet 2 + +## Test plan +- [ ] item +EOF +)" \ + --base main \ + --head +``` + +Key flags: +- `--base` — target branch (usually `main`) +- `--head` — source branch (current feature branch; defaults to current if omitted) +- `--title` — PR title (follow repo commit style: `type: description`) +- `--description` — PR body (use a heredoc to avoid quoting issues) +- `--assignees allanjsouza` — optionally assign to user +- `--labels "label1,label2"` — optionally add labels + +**Always verify the current branch before creating a PR:** +```bash +git branch --show-current +``` + +**Push the branch first if not yet on remote:** +```bash +git push -u origin +``` + +## Listing PRs + +```bash +tea pulls list # open PRs +tea pulls list --state all # all PRs +tea pulls list --output json # JSON output +``` + +## Listing Issues + +```bash +tea issues list # open issues +tea issues list --state all +``` + +## Other Useful Commands + +```bash +tea pulls list --fields index,title,state,author,updated +tea repo # show repo info +tea branches list # list branches +tea comment --body "…" # add comment +``` + +## Advanced API Operations (Review) + +`tea api` handles the construction of a JSON body when using `-f` (string) and `-F` (typed) flags. It also automatically replaces `{owner}` and `{repo}` placeholders with values from the current repository context. + +### Fetch PR Diff +```bash +tea api /repos///pulls/.diff +``` + +### Submit a Review with Comments +```bash +tea api -X POST /repos///pulls//reviews \ + -f "body=Automated Review" \ + -f "event=COMMENT" \ + -F "comments=@-" <<'EOF' +[ + { + "path": "app/models/user.rb", + "body": "Suggestion content", + "new_position": 42, + "old_position": 0 + } +] +EOF +``` + +## Workflow for PR Creation + +1. Confirm all changes are committed: `git status` +2. Push branch: `git push -u origin ` +3. Build PR title from commit history: `git log main.. --oneline` +4. Create PR with `tea pulls create` (all flags explicit, no prompts) +5. Return the PR URL from the `tea` output