---
name: gitea-api
description: Interact with Gitea via REST API (no tea CLI). Use for repo creation, issues, PRs, releases, branches, user info, and cloning on any Gitea instance.
---

# Gitea API Skill

REST-based Gitea control without `tea`.

## Setup

Create config file at:
`~/.clawdbot/credentials/gitea/config.json`

```json
{
  "url": "https://git.fiorinis.com",
  "token": "your-personal-access-token"
}
```

You can override with env vars:

```bash
export GITEA_URL="https://git.fiorinis.com"
export GITEA_TOKEN="your-token"
```

Token scope should include at least `repo`.

## Use

Run via wrapper (works in bash chat commands):

```bash
bash scripts/gitea.sh <command> [args]
```

## Commands

```bash
# list repos
bash scripts/gitea.sh repos

# create repo
bash scripts/gitea.sh create --name my-repo --description "My repo"
bash scripts/gitea.sh create --name my-repo --private
bash scripts/gitea.sh create --org Home --name my-repo

# issues
bash scripts/gitea.sh issues --owner Home --repo my-repo
bash scripts/gitea.sh issue --owner Home --repo my-repo --title "Bug" --body "Details"

# pull requests
bash scripts/gitea.sh pulls --owner Home --repo my-repo
bash scripts/gitea.sh pr --owner Home --repo my-repo --head feat-1 --base main --title "Add feat"

# releases
bash scripts/gitea.sh release --owner Home --repo my-repo --tag v1.0.0 --name "Release 1.0.0"

# branches
bash scripts/gitea.sh branches --owner Home --repo my-repo

# user info
bash scripts/gitea.sh user          # current user
bash scripts/gitea.sh user luke     # specific user

# clone
bash scripts/gitea.sh clone Home/my-repo
bash scripts/gitea.sh clone Home/my-repo ./my-repo
```

## Notes

- Works with Gitea/Forgejo-compatible APIs.
- Config lookup order:
  1. `/home/node/.openclaw/workspace/.clawdbot/credentials/gitea/config.json`
  2. `~/.clawdbot/credentials/gitea/config.json`
  3. env var overrides (`GITEA_URL`, `GITEA_TOKEN`)
- Do not commit tokens.
