feat: setup-claude 改為安裝 Claude Code CLI 並還原 OAuth 憑證,CI 移至 .gitea/workflows #1

Merged
admin merged 4 commits from ai-review-resolve/master-20260717-125158 into develop 2026-07-17 09:06:15 +00:00
Member

變更摘要

將本 repo 從原本的 Composite 範本(Gitea Composite Template,僅回傳訊息)改造為實用的 Setup Claude composite action:安裝 Claude Code CLI,並把 base64 編碼的 OAuth 憑證解碼寫入 ~/.claude/.credentials.json。同時重建 README,並把 CI workflow 從 .gitea/scoped_workflows/ 搬到 .gitea/workflows/,改為「安裝驗證」流程。

本 PR 由三個 conventional commit 組成:

  • feat(action):安裝 Claude Code CLI 並還原 OAuth 憑證
  • docs(README):重建說明並補上 oauth 參數與使用範例
  • chore(CI):將 workflow 移至 .gitea/workflows 並改為安裝驗證流程

影響範圍

  • action 對外契約變更(breaking):移除原本的 message 輸入與 message 輸出,新增必填輸入 oauth。既有以舊契約引用本 action 的 workflow 需同步調整。
  • action 的 name / description 由範本文案改為 Setup Claude 實際用途。
  • CI 觸發條件維持在對 master / develop 的 Pull Request(opened / synchronize),但 job 由「計算版本並發布 release」改為「checkout → 以本地 action 安裝 → 驗證 CLI 版本」。

重點檔案

  • action.yml:改為三個 step(顯示 action 資訊橫幅 → 安裝 Claude Code CLI → 解碼寫入 OAuth 憑證);憑證以環境變數 OAUTH_B64 帶入,寫檔後 chmod 600,全程不輸出憑證內容。
  • readme.md:重建為 setup-claude 說明,補上 oauth 輸入參數、執行步驟與使用範例。
  • .gitea/workflows/ci.yaml(新增):以 uses: ./ 引用本 repo action 進行安裝驗證,最後執行 claude --version
  • .gitea/scoped_workflows/ci.yaml(刪除):原本的 release 發布流程,已移除。

風險與注意事項

  • 需人工確認(重要):.gitea/workflows/ci.yaml安裝工具 step 使用 uses: ./,但本 action 的 oauth 為必填輸入,此處並未以 with: oauth: 傳入。CI 實際執行到「寫入 OAuth 憑證」step 時會因缺少必填輸入而失敗(或寫入空憑證)。若要讓 CI 通過,需補上例如 with: oauth: ${{ secrets.CLAUDE_OAUTH_B64 }},或確認是否要在驗證流程中略過憑證寫入。
  • 契約 breaking:移除 message 輸入/輸出屬破壞性變更,需確認沒有其他 workflow 仍依賴舊契約。
  • 憑證安全:oauth 應以 secret 傳入,切勿硬編於 workflow;action 本身不會輸出憑證內容,維持此設計。
## 變更摘要 將本 repo 從原本的 Composite 範本(`Gitea Composite Template`,僅回傳訊息)改造為實用的 `Setup Claude` composite action:安裝 Claude Code CLI,並把 base64 編碼的 OAuth 憑證解碼寫入 `~/.claude/.credentials.json`。同時重建 README,並把 CI workflow 從 `.gitea/scoped_workflows/` 搬到 `.gitea/workflows/`,改為「安裝驗證」流程。 本 PR 由三個 conventional commit 組成: - `feat(action)`:安裝 Claude Code CLI 並還原 OAuth 憑證 - `docs(README)`:重建說明並補上 oauth 參數與使用範例 - `chore(CI)`:將 workflow 移至 .gitea/workflows 並改為安裝驗證流程 ## 影響範圍 - action 對外契約變更(breaking):移除原本的 `message` 輸入與 `message` 輸出,新增必填輸入 `oauth`。既有以舊契約引用本 action 的 workflow 需同步調整。 - action 的 `name` / `description` 由範本文案改為 `Setup Claude` 實際用途。 - CI 觸發條件維持在對 `master` / `develop` 的 Pull Request(opened / synchronize),但 job 由「計算版本並發布 release」改為「checkout → 以本地 action 安裝 → 驗證 CLI 版本」。 ## 重點檔案 - `action.yml`:改為三個 step(顯示 action 資訊橫幅 → 安裝 Claude Code CLI → 解碼寫入 OAuth 憑證);憑證以環境變數 `OAUTH_B64` 帶入,寫檔後 `chmod 600`,全程不輸出憑證內容。 - `readme.md`:重建為 setup-claude 說明,補上 `oauth` 輸入參數、執行步驟與使用範例。 - `.gitea/workflows/ci.yaml`(新增):以 `uses: ./` 引用本 repo action 進行安裝驗證,最後執行 `claude --version`。 - `.gitea/scoped_workflows/ci.yaml`(刪除):原本的 release 發布流程,已移除。 ## 風險與注意事項 - 需人工確認(重要):`.gitea/workflows/ci.yaml` 中 `安裝工具` step 使用 `uses: ./`,但本 action 的 `oauth` 為必填輸入,此處並未以 `with: oauth:` 傳入。CI 實際執行到「寫入 OAuth 憑證」step 時會因缺少必填輸入而失敗(或寫入空憑證)。若要讓 CI 通過,需補上例如 `with: oauth: ${{ secrets.CLAUDE_OAUTH_B64 }}`,或確認是否要在驗證流程中略過憑證寫入。 - 契約 breaking:移除 `message` 輸入/輸出屬破壞性變更,需確認沒有其他 workflow 仍依賴舊契約。 - 憑證安全:`oauth` 應以 secret 傳入,切勿硬編於 workflow;action 本身不會輸出憑證內容,維持此設計。
admin changed target branch from master to develop 2026-07-17 09:06:12 +00:00
admin added 4 commits 2026-07-17 09:06:12 +00:00
admin merged commit 9e854d58d1 into develop 2026-07-17 09:06:15 +00:00
admin deleted branch ai-review-resolve/master-20260717-125158 2026-07-17 09:06:15 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: composite-actions/setup-claude#1