plugins/gitea/skills/gitea/SKILL.md
Gitea operations via gitea-mcp and tea CLI. Use when user mentions: gitea, tea, or when git remote shows a Gitea instance.
npx skillsauth add jason-hchsieh/marketplace giteaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This plugin provides two ways to interact with Gitea:
Activate this skill when:
Detection: Run git remote -v to check if the remote URL points to a Gitea instance (doesn't contain github.com or gitlab).
The MCP server provides 80+ tools for:
Requirements:
GITEA_ACCESS_TOKEN environment variable setgitea-mcp binary installed and in PATHGITEA_ACCESS_TOKEN is not setIf both gitea-mcp and tea CLI are unavailable or fail:
export GITEA_ACCESS_TOKEN=your_token
export GITEA_HOST=https://your-gitea-instance.com # optional, default: https://gitea.com
# Check existing logins
tea login list
# Add new login (interactive)
tea login add
Generate tokens: Gitea web UI → Settings → Applications → Generate New Token
git status-o json or -o yaml flags for automation--repo owner/repo flag when remote URL is non-standard (see below)Problem: tea CLI auto-detects the repository from git remote URLs, but fails with custom SSH aliases like:
ngit@gitea:owner/repo.gitgit@custom-host:owner/repo.gitError: Error: path segment [0] is empty
Solution: Always specify the repo explicitly with --repo owner/repo:
# Check remote URL format first
git remote -v
# If remote uses custom SSH alias (e.g., ngit@gitea:...), always use --repo
tea pr create --repo owner/repo --title "Title" --description "Description"
tea issue list --repo owner/repo
tea pr list --repo owner/repo
# Standard URLs ([email protected]:...) work without --repo
tea pr create --title "Title" --description "Description"
Detection: Run git remote -v at the start. If the URL doesn't match standard patterns ([email protected]: or https://gitea.com/), extract owner/repo from the path and use --repo for all tea commands.
Use these commands when gitea-mcp is unavailable or returns errors.
| Operation | Command |
|-----------|---------|
| Create PR | tea pr create --title "Title" --description "Description" |
| List PRs | tea pr list |
| List open PRs | tea pr list --state open |
| View PR | tea pr view <id> |
| Checkout PR | tea pr checkout <id> |
| Merge PR | tea pr merge <id> |
| Close PR | tea pr close <id> |
| Reopen PR | tea pr reopen <id> |
| Review PR | tea pr review <id> --approve |
| Clean merged branches | tea pr clean |
| Operation | Command |
|-----------|---------|
| Create issue | tea issue create --title "Title" --body "Description" |
| List issues | tea issue list |
| List open issues | tea issue list --state open |
| List closed issues | tea issue list --state closed |
| View issue | tea issue view <id> |
| Close issue | tea issue close <id> |
| Reopen issue | tea issue reopen <id> |
| Add comment | tea issue comment <id> "Comment text" |
| Edit issue | tea issue edit <id> --title "New Title" |
| Operation | Command |
|-----------|---------|
| Clone repo | tea repo clone <owner/repo> |
| Fork repo | tea repo fork <owner/repo> |
| Create repo | tea repo create --name <name> |
| Create from template | tea repo create-from-template <template-owner/repo> --name <name> |
| List repos | tea repos list |
| Search repos | tea repos search <query> |
| Operation | Command |
|-----------|---------|
| List releases | tea release list |
| Create release | tea release create --tag <tag> --title "Title" |
| Delete release | tea release delete <tag> |
| Operation | Command |
|-----------|---------|
| List labels | tea label list |
| Create label | tea label create --name "bug" --color "#ff0000" |
| Delete label | tea label delete <name> |
| Export labels | tea label export |
| Operation | Command |
|-----------|---------|
| List milestones | tea milestone list |
| Create milestone | tea milestone create --title "v1.0" |
| Close milestone | tea milestone close <name> |
| Operation | Command |
|-----------|---------|
| List orgs | tea org list |
| View org | tea org view <name> |
| Operation | Command |
|-----------|---------|
| List notifications | tea notifications |
| Mark as read | tea notifications --mark-read |
| Operation | Command |
|-----------|---------|
| List time entries | tea times list |
| Add time | tea times add <issue-id> <duration> |
| Delete time | tea times delete <id> |
| Operation | Command |
|-----------|---------|
| List logins | tea login list |
| Add login | tea login add |
| Set default | tea login default <name> |
| Delete login | tea login delete <name> |
Tea supports multiple output formats for automation:
# JSON output
tea issue list -o json
tea pr list -o json
# YAML output
tea issue list -o yaml
# Simple/minimal output
tea issue list -o simple
# Check for uncommitted changes first
git status
# Check remote URL format
git remote -v
# If using custom SSH remote (e.g., ngit@gitea:...), use --repo explicitly
tea pr create --repo owner/repo --title "Add new feature" --description "This PR adds..."
# For standard remotes, --repo is optional
tea pr create --title "Add new feature" --description "This PR adds..."
# Or interactively
tea pr create
# View the issue
tea issue view 42
# Checkout related PR if exists
tea pr checkout 42
# Add a comment
tea issue comment 42 "Working on this now"
# Close when done
tea issue close 42
# Clone a repository
tea repo clone owner/repo
# Or fork first then clone
tea repo fork owner/repo
tea repo clone your-username/repo
# List secrets
tea repo secrets list
# Add a secret
tea repo secrets add <name> <value>
# Delete a secret
tea repo secrets delete <name>
| Flag | Description |
|------|-------------|
| -l, --login | Use a specific login |
| -r, --repo | Override repository |
| -o, --output | Output format (simple, table, csv, tsv, yaml, json) |
| --remote | Use specific git remote |
# macOS
brew install tea
# Arch Linux
pacman -S tea
# Alpine
apk add tea
# From binary
# Download from https://dl.gitea.com/tea/
# Docker
docker pull gitea/tea
tools
Bootstrap versioning for a project - detect project type, initialize git-cliff config, and generate initial CHANGELOG.md using semantic versioning
development
Validate version consistency across all project files, check semver format, git tag alignment, and changelog synchronization per https://semver.org/
tools
Generate or update CHANGELOG.md using git-cliff from conventional commit history - see https://git-cliff.org/docs/category/usage
tools
Bump the project version following semver, update all version files per https://semver.org/