Reviewed-on: #15 Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
jsc-gitea — Gitea 操作
jsc 技能組的 gitea domain:Gitea API 的統一入口。所有 jsc 技能需要操作 gitea(wiki、repo、PR)時,一律經由本 domain 的工具或技能,不可自行拼 API 呼叫。
安裝、更新、移除
Marketplace 統一為 jsc(https://gitea.jsc.idv.tw/plugins/meta.git),安裝 token 為 jsc-gitea@jsc。每個指令一行:
| CLI | 安裝 | 更新 | 移除 |
|---|---|---|---|
| claude | claude plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && claude plugin install jsc-gitea@jsc |
claude plugin marketplace update jsc && claude plugin update jsc-gitea@jsc |
claude plugin uninstall jsc-gitea@jsc |
| codex | codex plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && codex plugin add jsc-gitea@jsc |
codex plugin marketplace upgrade jsc |
codex plugin remove jsc-gitea@jsc |
| copilot | copilot plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && copilot plugin install jsc-gitea@jsc |
copilot plugin marketplace update jsc && copilot plugin update jsc-gitea@jsc |
copilot plugin uninstall jsc-gitea@jsc |
| antigravity | git clone https://gitea.jsc.idv.tw/plugins/gitea.git ~/plugins/gitea && agy plugin install ~/plugins/gitea |
git -C ~/plugins/gitea pull && agy plugin uninstall jsc-gitea && agy plugin install ~/plugins/gitea |
agy plugin uninstall jsc-gitea |
| kiro | kiro-cli plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && kiro-cli plugin install jsc-gitea@jsc |
kiro-cli plugin marketplace update jsc && kiro-cli plugin update jsc-gitea@jsc |
kiro-cli plugin uninstall jsc-gitea@jsc |
antigravity 不支援 gitea URL 安裝,改用本地 clone 路徑。批次操作五個 CLI:使用
/jsc-cli:deploy。
舊入口
plugins/jsc已移除,marketplace 正本移到plugins/meta。marketplace 名稱仍是jsc(取自 marketplace.json 的name欄位,與存取庫名無關),安裝 token 不變;已從舊入口安裝過的人先執行claude plugin marketplace remove jsc,再依上表重新 add。
工具
tools/gitea.sh(POSIX shell + curl):
gitea.sh owners # 列出可讀取的 owner
gitea.sh repos <owner> # 列出 owner 的 repo 全名
gitea.sh default-branch <owner>/<repo>
gitea.sh clone-url <owner>/<repo>
gitea.sh hash-id <text> # 產生 8 碼大寫 SHA-1;首碼 0-9/A/B/C 時改成 Hxxxxxxx
gitea.sh wiki-repo <TYPE> # 解析頁面類型的 wiki 位置(TYPE = QUESTION / PLAN / ANALYZE / DELIVER / MAINTAIN / REPO / LOG / LEARN / ERROR)
gitea.sh wiki-list <owner>/<repo>
gitea.sh wiki-get <owner>/<repo> <page> # 不存在 exit 4
gitea.sh wiki-put <owner>/<repo> <page> <file> # 自動判斷新建或更新
gitea.sh wiki-url <owner>/<repo> <page> # 印出 wiki 頁絕對網址(取自 API 的 html_url);跨存取庫連結用
gitea.sh pr-create <owner>/<repo> <head> <base> <title> <body-file>
gitea.sh api <METHOD> <path> [json-file]
hash-id <text> # 與 gitea.sh hash-id 相同
check-wiki-rules.sh # 驗證 wiki repo 解析與 hash fallback 規則
Skills 目錄
呼叫方式:Claude / Antigravity /jsc-gitea:{name};Codex ${name};Copilot / Kiro 描述需求自動觸發。
wiki
Gitea wiki 頁讀寫的統一入口:依頁面類型(QUESTION / PLAN / ANALYZE / DELIVER / MAINTAIN / REPO / LOG / LEARN / ERROR)解析 wiki 所在的 {owner}/{repo},先讀對應的 JSC_WIKI_REPO_{TYPE},再退回 JSC_WIKI_REPO,不同類型不可互相代用。頁面內容以圖表優先(mermaid 圖、markdown 表格),純文字為最後手段。
repo-sync
存取庫批次同步:列出 owner → 使用者選擇 → 逐 repo(sub agent)clone 或切 develop/master 更新;有變更就開分支 commit、push、PR。
環境變數
| 變數 | 用途 | 未設定時 |
|---|---|---|
GITEA_HOST |
Gitea 站台(可省略 scheme,預設 https) | 詢問使用者 |
GITEA_TOKEN |
Gitea API token;缺少或遇 401/403 時自動退回 tea CLI 登入 token | 詢問使用者 |
JSC_WIKI_REPO_{TYPE} |
各類型 wiki 頁的 {owner}/{repo};TYPE = QUESTION / PLAN / ANALYZE / DELIVER / MAINTAIN / REPO / LOG / LEARN / ERROR |
退回 JSC_WIKI_REPO,不做跨類型代用 |
JSC_WIKI_REPO |
共用預設的 wiki {owner}/{repo} |
詢問使用者 |
Hash 規則
{HASH} 由 tools/hash-id 產生。先算 SHA-1 前 8 碼並轉大寫。若首碼是數字或 A、B、C,就改成 H 加上原本的前 7 碼,維持 8 碼長度。