Initial commit: Gong Fu Cha - Tea CLI skills for Claude Code

Add comprehensive Claude Code skills for Gitea's tea CLI tool.

Includes:
- Complete skill documentation (skills/SKILL.md)
- Detailed examples (skills/examples.md)
- User-facing README with installation and usage
- Claude Code instructions (CLAUDE.md)
- Git ignore file

🍵 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-05 18:52:02 -05:00
commit 42d7b43705
5 changed files with 1149 additions and 0 deletions
+334
View File
@@ -0,0 +1,334 @@
---
name: tea
description: Use Gitea's tea CLI to manage issues, PRs, releases, and other repository operations. Works with git.ajet.fyi and other Gitea instances.
---
# Gitea Tea CLI
## When to Use This Skill
Use this skill when you need to:
- **Create or manage pull requests** without leaving the terminal
- **Create, update, or close issues**
- **Review pull requests** and approve/reject changes
- **Create releases** and manage release assets
- **Manage labels and milestones**
- **Check notifications** from Gitea
- **Clone repositories** from Gitea instances
## How It Works
The `tea` CLI tool interacts directly with Gitea instances via their API. It automatically detects repository context from your current directory and uses stored login credentials.
## Setup
### Check if logged in
```bash
tea whoami
```
### Login to a Gitea instance
```bash
tea login add --url https://git.ajet.fyi --token YOUR_TOKEN
```
Or use interactive OAuth:
```bash
tea login add --url https://git.ajet.fyi --oauth
```
### List configured logins
```bash
tea login ls
```
## Common Operations
### Pull Requests
**List PRs:**
```bash
tea pr ls
tea pr ls --state open
tea pr ls --state closed
```
**Create a PR:**
```bash
tea pr create --title "Feature: Add new capability" --description "Detailed description"
tea pr create -t "Title" -d "Description" --base main --head feature-branch
```
**View PR details:**
```bash
tea pr <number>
tea pr 42 --comments
```
**Checkout a PR locally:**
```bash
tea pr checkout 42
tea pr co 42 --branch # Create local branch
```
**Review a PR:**
```bash
tea pr review 42
tea pr approve 42
tea pr reject 42
```
**Merge a PR:**
```bash
tea pr merge 42
tea pr merge 42 --style squash
tea pr merge 42 --style rebase
```
**Close a PR:**
```bash
tea pr close 42
```
### Issues
**List issues:**
```bash
tea issues ls
tea issues ls --state open
tea issues ls --labels bug,urgent
tea issues ls --milestone v1.0
```
**Create an issue:**
```bash
tea issues create --title "Bug: Something broken" --description "Details here"
tea issues create -t "Title" -d "Description" --labels bug,priority
```
**Edit an issue:**
```bash
tea issues edit 42 --title "New title"
tea issues edit 42 --add-labels bug,urgent
tea issues edit 42 --milestone v1.0
```
**Close/Reopen issues:**
```bash
tea issues close 42
tea issues reopen 42
```
### Comments
**Add a comment to an issue or PR:**
```bash
tea comment 42 "This is my comment"
```
### Releases
**List releases:**
```bash
tea releases ls
```
**Create a release:**
```bash
tea releases create --tag v1.0.0 --title "Version 1.0.0" --note "Release notes here"
tea releases create --tag v1.0.0 -t "v1.0.0" -n "Notes" --asset ./binary
```
**Delete a release:**
```bash
tea releases delete v1.0.0 --confirm
```
### Labels
**List labels:**
```bash
tea labels ls
```
**Create a label:**
```bash
tea labels create --name bug --color "#ff0000" --description "Bug reports"
```
### Milestones
**List milestones:**
```bash
tea milestones ls
tea milestones ls --state open
```
**Create a milestone:**
```bash
tea milestones create --title "v1.0" --description "First release"
tea milestones create -t "v1.0" -d "Description" --deadline 2026-12-31
```
**Add issue to milestone:**
```bash
tea milestones issues add v1.0 42
```
### Repositories
**Show repo details:**
```bash
tea repo
```
**Clone a repository:**
```bash
tea clone owner/repo
tea clone owner/repo --depth 1
```
### Branches
**List branches:**
```bash
tea branches ls
```
### Notifications
**Check notifications:**
```bash
tea notifications
tea notifications --mine
```
### Open in Browser
**Open repo in browser:**
```bash
tea open
tea open 42 # Open issue/PR #42
```
## Context and Options
### Repository Context
Tea automatically detects the repository from your current directory. Override with:
```bash
tea pr ls --repo owner/repo
tea issues create --repo owner/repo -t "Title"
```
### Login Selection
Use a specific Gitea login:
```bash
tea pr ls --login my-gitea
```
### Output Formats
Control output format:
```bash
tea pr ls --output json
tea pr ls --output yaml
tea pr ls --output csv
tea issues ls -o table # Default
```
## Advanced Usage
### Filtering and Searching
**Filter PRs by author:**
```bash
tea pr ls --author username
```
**Search issues by keyword:**
```bash
tea issues ls --keyword "search term"
```
**Filter by labels:**
```bash
tea issues ls --labels bug,urgent
```
**Filter by milestone:**
```bash
tea issues ls --milestone v1.0
```
**Filter by assignee:**
```bash
tea issues ls --assignee username
```
### Pagination
```bash
tea pr ls --page 2
tea pr ls --limit 50
```
## Important Notes
- **Repository context**: Tea works best when run from within a git repository directory
- **Multiple logins**: You can configure multiple Gitea instances
- **Default login**: Set a default login with `tea login default`
- **Token permissions**: Ensure your access token has appropriate scopes
- **Help available**: Run `tea <command> --help` for detailed options
- **Manual pages**: Use `tea man` for comprehensive documentation
## Typical Workflows
### Creating a PR from a feature branch
1. Make changes and commit
2. Push to remote
3. Create PR:
```bash
tea pr create -t "Feature: New capability" -d "Description of changes"
```
4. Wait for review or review yourself
### Reviewing and merging a PR
1. List PRs: `tea pr ls`
2. Checkout locally: `tea pr checkout 42`
3. Test the changes
4. Approve: `tea pr approve 42`
5. Merge: `tea pr merge 42 --style squash`
### Creating a release
1. Ensure you're on the right branch/commit
2. Create release:
```bash
tea releases create --tag v1.0.0 --title "Version 1.0.0" \
--note "Release notes" --asset ./binary
```
### Managing issues
1. List open issues: `tea issues ls --state open`
2. View specific issue: `tea issues 42`
3. Add comment: `tea comment 42 "Working on this"`
4. Close when done: `tea issues close 42`
## Getting Help
```bash
tea --help
tea <command> --help
tea man
```
+404
View File
@@ -0,0 +1,404 @@
# Tea CLI Examples
Quick reference for common `tea` commands.
## Setup
```bash
# Login to Gitea
tea login add --url https://git.ajet.fyi
# Check who you're logged in as
tea whoami
# List all configured logins
tea login ls
# Set default login
tea login default
```
## Pull Requests
```bash
# List all PRs
tea pr ls
# List open PRs only
tea pr ls --state open
# View specific PR with comments
tea pr 42 --comments
# Create a PR
tea pr create \
--title "Feature: Add authentication" \
--description "Implements JWT authentication" \
--base main \
--head feature/auth
# Create PR with labels and assignee
tea pr create -t "Fix bug" -d "Description" \
--labels bug,urgent \
--assignees username
# Checkout a PR locally
tea pr checkout 42
tea pr co 42 --branch # Create local branch
# Review a PR
tea pr review 42
# Approve a PR
tea pr approve 42
# Request changes
tea pr reject 42
# Merge a PR
tea pr merge 42 # Default merge
tea pr merge 42 --style squash # Squash merge
tea pr merge 42 --style rebase # Rebase merge
# Close a PR without merging
tea pr close 42
# Reopen a closed PR
tea pr reopen 42
# Clean up branches after PR is merged
tea pr clean 42
```
## Issues
```bash
# List all issues
tea issues ls
# List open issues
tea issues ls --state open
# List issues with specific label
tea issues ls --labels bug
# List issues by author
tea issues ls --author username
# Search issues
tea issues ls --keyword "authentication"
# View specific issue
tea issues 42
# Create an issue
tea issues create \
--title "Bug: Login fails" \
--description "Detailed description of the bug"
# Create issue with labels and milestone
tea issues create -t "Feature request" \
-d "Description" \
--labels enhancement \
--milestone v1.0
# Edit an issue
tea issues edit 42 --title "New title"
# Add labels to an issue
tea issues edit 42 --add-labels bug,urgent
# Remove labels
tea issues edit 42 --remove-labels wontfix
# Assign issue to milestone
tea issues edit 42 --milestone v1.0
# Close an issue
tea issues close 42
# Reopen an issue
tea issues reopen 42
```
## Comments
```bash
# Add comment to issue
tea comment 42 "This is my comment"
# Add comment to PR
tea comment 123 "LGTM! 👍"
# Add multiline comment
tea comment 42 "First line
Second line
Third line"
```
## Releases
```bash
# List all releases
tea releases ls
# Create a release
tea releases create \
--tag v1.0.0 \
--title "Version 1.0.0" \
--note "Release notes here"
# Create release with asset
tea releases create \
--tag v1.0.0 \
-t "v1.0.0" \
-n "Release notes" \
--asset ./binary
# Create release from file
tea releases create \
--tag v1.0.0 \
-t "v1.0.0" \
--note-file RELEASE_NOTES.md
# Create draft release
tea releases create --tag v1.0.0 -t "v1.0.0" --draft
# Create pre-release
tea releases create --tag v1.0.0-beta -t "v1.0.0 Beta" --prerelease
# Edit a release
tea releases edit v1.0.0 --title "New title"
# Delete a release
tea releases delete v1.0.0 --confirm
# Delete release and tag
tea releases delete v1.0.0 --confirm --delete-tag
```
## Labels
```bash
# List all labels
tea labels ls
# Save labels to file
tea labels ls --save > labels.yaml
# Create a label
tea labels create \
--name bug \
--color "#ff0000" \
--description "Bug reports"
# Create labels from file
tea labels create --file labels.yaml
# Update a label
tea labels update \
--id 123 \
--name "critical-bug" \
--color "#cc0000"
# Delete a label
tea labels delete --id 123
```
## Milestones
```bash
# List all milestones
tea milestones ls
# List open milestones
tea milestones ls --state open
# Create a milestone
tea milestones create \
--title "v1.0" \
--description "First stable release"
# Create milestone with deadline
tea milestones create \
-t "v1.0" \
-d "First release" \
--deadline 2026-12-31
# View milestone issues
tea milestones issues v1.0
# Add issue to milestone
tea milestones issues add v1.0 42
# Remove issue from milestone
tea milestones issues remove v1.0 42
# Close a milestone
tea milestones close v1.0
# Reopen a milestone
tea milestones reopen v1.0
# Delete a milestone
tea milestones delete v1.0
```
## Repositories
```bash
# Show current repository details
tea repo
# Clone a repository
tea clone owner/repo
# Clone with depth
tea clone owner/repo --depth 1
# Clone to specific directory
tea clone owner/repo /path/to/dir
```
## Branches
```bash
# List all branches
tea branches ls
# List with details
tea branches ls --output table
```
## Notifications
```bash
# List all notifications
tea notifications
# List only your notifications
tea notifications --mine
# Mark notifications as read
tea notifications --read
```
## Organizations
```bash
# List organizations
tea orgs ls
# Create an organization
tea orgs create --name my-org --description "My organization"
# Delete an organization
tea orgs delete my-org
```
## Open in Browser
```bash
# Open current repo in browser
tea open
# Open specific issue/PR in browser
tea open 42
# Open repo page
tea open --repo owner/repo
```
## Output Formats
```bash
# JSON output
tea pr ls --output json
# YAML output
tea issues ls -o yaml
# CSV output
tea releases ls -o csv
# TSV output
tea milestones ls -o tsv
# Simple output (minimal)
tea pr ls -o simple
```
## Advanced Filtering
```bash
# Filter PRs by multiple criteria
tea pr ls \
--state open \
--labels bug \
--milestone v1.0
# Filter issues by date range
tea issues ls \
--from 2026-01-01 \
--until 2026-12-31
# Complex issue search
tea issues ls \
--author username \
--labels bug,urgent \
--milestone v1.0 \
--state open
# Pagination
tea pr ls --page 2 --limit 50
```
## Using with Specific Repositories
```bash
# Work with a specific repo
tea pr ls --repo owner/repo
# Work with different Gitea login
tea issues ls --login my-gitea
# Override remote
tea pr create --remote origin -t "Title" -d "Description"
```
## Combining with Git
```bash
# Create branch, make changes, create PR
git checkout -b feature/new-thing
# ... make changes ...
git add .
git commit -m "Add new feature"
git push -u origin feature/new-thing
tea pr create -t "Feature: New thing" -d "Description"
# Review PR locally
tea pr checkout 42
# ... test changes ...
git checkout main
tea pr approve 42
tea pr merge 42
```
## Tips and Tricks
```bash
# Get JSON output for scripting
tea pr ls -o json | jq '.[] | select(.state == "open")'
# Check specific fields
tea pr ls --fields index,title,state,author
# Use aliases
alias tpr='tea pr'
alias ti='tea issues'
alias trl='tea releases'
# Quick PR creation from current branch
git push && tea pr create -t "$(git log -1 --pretty=%s)" -d "$(git log -1 --pretty=%b)"
```