
jiantw83andClaude Fable 5
684d3f4f31
feat(gitea): gitea.sh 認證失敗時自動退回 tea CLI 登入 token
What(改了什麼)
- tools/gitea.sh 新增 tea_token():解析 ~/.config/tea/config.yml,優先取 default: true 的登入 token,否則取第一個。
- 啟動時 GITEA_TOKEN 未設定或為空,改用 tea token;兩者皆無才維持原本的必填錯誤。
- req() 遇 HTTP 401/403 且 tea token 存在又與當前 token 不同時,換用 tea token 重試一次,之後不再重試。
- 檔頭用法註解補上退回機制的說明。
Why(為什麼改)
- 使用者規則:api token 401/403 時,若 tea CLI 已登入就取其 token 重試,避免因 GITEA_TOKEN 過期或未設定就直接中斷流程。
How(怎麼改)
- 以 awk 解析 tea 設定檔的 logins 清單,抓各登入的 token 與 default 旗標。
- req() 改為 while 迴圈包住 curl,retried 旗標保證最多重試一次;HTTP >= 400 仍以 exit 4 收場。
- 實測:sh -n 語法檢查通過;GITEA_TOKEN 為空時經 tea token 成功;GITEA_TOKEN=deadbeef 時走 401 重試路徑成功;無 tea 設定且 token 為空時維持原錯誤訊息。
Who(影響哪個功能/使用者)
- 所有經 tools/gitea.sh 呼叫 Gitea API 的技能(wiki、repo-sync、jsc-git pr 等)與使用者:token 缺失或失效時多一層自動救援,行為只在原本會失敗的情境改變。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>