- SKILL.md with tea CLI integration guide - README.md with installation instructions - LICENSE (MIT) This skill enables OpenClaw agents to interact with Gitea servers using the tea CLI tool for git operations, PRs, issues, and more.
143 lines
3.3 KiB
Markdown
143 lines
3.3 KiB
Markdown
---
|
|
name: gitea
|
|
description: Interact with Gitea git forge servers using the tea CLI tool. Use for pushing commits, creating pull requests, managing issues, and working with repositories on Gitea instances. Requires tea CLI to be installed and configured.
|
|
---
|
|
|
|
# Gitea Skill
|
|
|
|
Interact with Gitea servers using the tea CLI tool.
|
|
|
|
## Prerequisites
|
|
|
|
1. **tea CLI must be installed:**
|
|
```bash
|
|
go install code.gitea.io/tea@latest
|
|
```
|
|
|
|
2. **tea must be configured with a Gitea login:**
|
|
```bash
|
|
tea login add --name <login-name> --url <gitea-url> --token <access-token>
|
|
```
|
|
|
|
To get an access token:
|
|
- Log in to your Gitea web interface
|
|
- Go to Settings → Applications → Generate New Token
|
|
- Or use the API: `POST /api/v1/users/{username}/tokens`
|
|
|
|
## Quick Start
|
|
|
|
### Check Logins
|
|
```bash
|
|
tea login ls
|
|
```
|
|
|
|
### Push to Gitea
|
|
```bash
|
|
# Using git with tea-configured remote
|
|
git push <remote-name> <branch>
|
|
|
|
# Or configure git remote with token embedded
|
|
git remote set-url <remote-name> https://<username>:<token>@<gitea-host>/<owner>/<repo>.git
|
|
git push <remote-name> <branch>
|
|
```
|
|
|
|
### Create Pull Request
|
|
```bash
|
|
tea pr create --title "PR Title" --body "Description" --base main --head feature-branch
|
|
```
|
|
|
|
### List Issues
|
|
```bash
|
|
tea issues list --repo <owner>/<repo>
|
|
```
|
|
|
|
## Common Operations
|
|
|
|
### Repository Operations
|
|
```bash
|
|
# Clone a repository
|
|
git clone https://<gitea-host>/<owner>/<repo>.git
|
|
|
|
# View repository info
|
|
tea repos view --repo <owner>/<repo>
|
|
|
|
# List repositories
|
|
tea repos list
|
|
```
|
|
|
|
### Issue Management
|
|
```bash
|
|
# List issues
|
|
tea issues list --repo <owner>/<repo>
|
|
|
|
# Create issue
|
|
tea issues create --repo <owner>/<repo> --title "Issue Title" --body "Description"
|
|
|
|
# Close issue
|
|
tea issues close --repo <owner>/<repo> <issue-number>
|
|
```
|
|
|
|
### Pull Request Management
|
|
```bash
|
|
# List PRs
|
|
tea pulls list --repo <owner>/<repo>
|
|
|
|
# View PR
|
|
tea pulls view --repo <owner>/<repo> <pr-number>
|
|
|
|
# Checkout PR locally
|
|
tea pr checkout <pr-number>
|
|
```
|
|
|
|
### Labels
|
|
```bash
|
|
# List labels
|
|
tea labels list --repo <owner>/<repo>
|
|
|
|
# Create label
|
|
tea labels create --repo <owner>/<repo> --name "bug" --color "ff0000"
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Environment Variables
|
|
```bash
|
|
export GITEA_SERVER_URL=https://git.example.com
|
|
export GITEA_SERVER_TOKEN=your-access-token
|
|
```
|
|
|
|
### Multiple Gitea Instances
|
|
```bash
|
|
# Add multiple logins
|
|
tea login add --name work --url https://git.company.com --token <work-token>
|
|
tea login add --name personal --url https://git.example.com --token <personal-token>
|
|
|
|
# Switch between them by specifying --login flag
|
|
tea issues list --login work --repo company/project
|
|
```
|
|
|
|
## Security Notes
|
|
|
|
- **Never commit access tokens to git repositories**
|
|
- **Use environment variables or secure credential stores for tokens**
|
|
- **Rotate tokens periodically**
|
|
- **Use minimal scope tokens** (only permissions needed)
|
|
|
|
## Troubleshooting
|
|
|
|
### "No help topic for 'push'"
|
|
tea doesn't have a direct push command. Use standard `git push` with a properly configured remote.
|
|
|
|
### Authentication failures
|
|
- Verify token hasn't expired
|
|
- Check tea login is configured: `tea login ls`
|
|
- Ensure correct permissions on token
|
|
|
|
### "could not read Username"
|
|
Configure git remote with embedded credentials or use SSH keys instead of HTTPS.
|
|
|
|
## References
|
|
|
|
- tea CLI documentation: https://gitea.com/gitea/tea
|
|
- Gitea API documentation: https://<your-gitea-host>/api/swagger
|