update skills dir
This commit is contained in:
@@ -0,0 +1,376 @@
|
||||
---
|
||||
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.
|
||||
|
||||
## ⚠️ Critical Requirements
|
||||
|
||||
**BEFORE running any `tea` commands, you MUST:**
|
||||
|
||||
1. **Be inside a git repository directory** - Navigate to a repository with `cd /path/to/repo`
|
||||
2. **Have a Gitea remote configured** - The repository must have a remote pointing to your Gitea instance (e.g., git.ajet.fyi)
|
||||
3. **Be authenticated** - Run `tea whoami` to verify you're logged in
|
||||
|
||||
Most `tea` commands will FAIL if you're not in a repository directory with a Gitea remote. The `--repo` flag exists but is unreliable for many operations.
|
||||
|
||||
## 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
|
||||
|
||||
**REQUIREMENT**: Tea requires you to be in a git repository directory with a Gitea remote configured. It reads `.git/config` to determine the repository context.
|
||||
|
||||
**Verify your repository has a Gitea remote:**
|
||||
```bash
|
||||
git remote -v
|
||||
# Should show a remote pointing to your Gitea instance (e.g., git.ajet.fyi)
|
||||
```
|
||||
|
||||
**If no Gitea remote exists, add one:**
|
||||
```bash
|
||||
git remote add origin https://git.ajet.fyi/owner/repo.git
|
||||
```
|
||||
|
||||
**The `--repo` flag is unreliable** - While tea provides a `--repo owner/repo` flag, many commands don't work correctly with it. Always run tea from within the repository directory.
|
||||
|
||||
### 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 REQUIRED**: You MUST run tea from within a git repository directory that has a Gitea remote configured. Commands will fail otherwise.
|
||||
- **Verify before running**: Always check `git remote -v` to ensure you have a Gitea remote before running tea commands
|
||||
- **Navigate to repo first**: Use `cd /path/to/repo` to change to your repository directory before running tea
|
||||
- **Multiple logins**: You can configure multiple Gitea instances with `tea login add`
|
||||
- **Default login**: Set a default login with `tea login default`
|
||||
- **Token permissions**: Ensure your access token has appropriate scopes for the operations you need
|
||||
- **Help available**: Run `tea <command> --help` for detailed options
|
||||
- **Manual pages**: Use `tea man` for comprehensive documentation
|
||||
|
||||
## Typical Workflows
|
||||
|
||||
### Pre-flight Checklist
|
||||
|
||||
**BEFORE running any tea workflow, verify:**
|
||||
|
||||
```bash
|
||||
# 1. Check you're in a git repository
|
||||
pwd # Should show your repo directory
|
||||
ls .git # Should exist
|
||||
|
||||
# 2. Verify Gitea remote is configured
|
||||
git remote -v # Should show git.ajet.fyi or your Gitea instance
|
||||
|
||||
# 3. Check authentication
|
||||
tea whoami # Should show your username
|
||||
```
|
||||
|
||||
If any of these fail, fix them before proceeding with tea commands.
|
||||
|
||||
### Creating a PR from a feature branch
|
||||
|
||||
1. **Verify you're in the correct repository directory**
|
||||
2. Make changes and commit
|
||||
3. Push to remote
|
||||
4. Create PR:
|
||||
```bash
|
||||
tea pr create -t "Feature: New capability" -d "Description of changes"
|
||||
```
|
||||
5. Wait for review or review yourself
|
||||
|
||||
### Reviewing and merging a PR
|
||||
|
||||
1. **Navigate to repository directory**: `cd /path/to/repo`
|
||||
2. List PRs: `tea pr ls`
|
||||
3. Checkout locally: `tea pr checkout 42`
|
||||
4. Test the changes
|
||||
5. Approve: `tea pr approve 42`
|
||||
6. Merge: `tea pr merge 42 --style squash`
|
||||
|
||||
### Creating a release
|
||||
|
||||
1. **Navigate to repository directory**: `cd /path/to/repo`
|
||||
2. Ensure you're on the right branch/commit
|
||||
3. Create release:
|
||||
```bash
|
||||
tea releases create --tag v1.0.0 --title "Version 1.0.0" \
|
||||
--note "Release notes" --asset ./binary
|
||||
```
|
||||
|
||||
### Managing issues
|
||||
|
||||
1. **Navigate to repository directory**: `cd /path/to/repo`
|
||||
2. List open issues: `tea issues ls --state open`
|
||||
3. View specific issue: `tea issues 42`
|
||||
4. Add comment: `tea comment 42 "Working on this"`
|
||||
5. Close when done: `tea issues close 42`
|
||||
|
||||
## Getting Help
|
||||
|
||||
```bash
|
||||
tea --help
|
||||
tea <command> --help
|
||||
tea man
|
||||
```
|
||||
@@ -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)"
|
||||
```
|
||||
Reference in New Issue
Block a user