--- name: gitea-cli description: 對自架 Gitea 做常見操作:建 repo 並推送、列出 repo、clone、改名、切換公開私有、archive、刪除、設定 description/topics、建 release 並上傳附件、打 tag。當使用者提到 Gitea 相關的 push / clone / list / rename / release / archive / delete / tag 等需求時使用。需先在 config.env 設定 Gitea URL、使用者名稱、access token。 --- # gitea-cli 把自架 Gitea 常見操作封裝成 bash 腳本。Token 絕不落地到 `.git/config`。 ## 使用前準備(只需做一次) 1. 到自己的 Gitea 產生 access token(權限至少 `write:repository`) 2. 在本 skill 目錄下: ```bash cp config.example.env config.env # 編輯 config.env 填入 GITEA_URL / GITEA_USER / GITEA_TOKEN ``` 3. `config.env` 已被 `.gitignore` 排除。 ### 多組 Gitea 站/帳號 需要切換不同 Gitea 站或帳號時,另外存成 `config..env`,呼叫腳本時帶 `GITEA_PROFILE`: ```bash cp config.example.env config.work.env # 編輯 config.work.env GITEA_PROFILE=work bash /scripts/list.sh ``` `GITEA_PROFILE` 未設時讀 `config.env`(預設)。`config.*.env` 已被 `.gitignore` 排除。 ## 常見情境 → 對應腳本 `` 代表本 skill 所在路徑(clone 下來的位置或 `~/.claude/skills/gitea-cli` symlink)。 | 要做什麼 | 指令 | |---|---| | 建 repo 並把目前專案推上去 | `bash /scripts/publish.sh [repo] [public\|private] [-m "msg"]` | | 列出自己所有 repo | `bash /scripts/list.sh [--private\|--public] [--format table\|tsv\|name]` | | clone 某個 repo 到本地 | `bash /scripts/clone.sh [target-dir]` | | 改 repo 名稱 | `bash /scripts/rename.sh ` | | 切換 public/private | `bash /scripts/visibility.sh ` | | 設定 description / topics | `bash /scripts/meta.sh [--desc "..."] [--topics "a,b,c"]` | | archive / unarchive | `bash /scripts/archive.sh [--unarchive] [-y]` | | 刪除 repo | `bash /scripts/delete.sh [-y]` | | 打 tag 並推上去 | `bash /scripts/tag.sh [-m "msg"]` | | 建 release(含 asset 上傳) | `bash /scripts/release.sh [--name ...] [--notes ...] [--asset PATH]... [--repo NAME]` | ## 注意 - `config.env` 絕對不要 commit - `origin` remote 永遠是乾淨 URL;token 只在 push/clone 當下透過一次性 credential helper 注入 - 破壞性操作(`archive.sh` / `delete.sh`)預設需要互動確認;自動化場景請帶 `-y` / `--yes` 或設 `GITEA_YES=1` - 401/403 → 檢查 `config.env` 的 token ## 回覆原則 - 執行前先確認 cwd 就是要操作的目標 - 執行後簡述結果(URL / branch / 刪除/建立的項目)