#!/usr/bin/env bash # 貼進 code-on-web「Cloud environments → 你的環境 → Setup script」欄位的內容。 # 不是 ISEP 的一部分(不會被 Claude Code 當 hook/command/skill 掃描), # 純粹是給 leo 複製貼上的參考檔,見 docs/cloud-session-bootstrap.md。 # # 前提(要先在同一個 Cloud environment 的 Environment variables 欄位加好): # GITEA_TOKEN_CLAUDE_CODE ← 既有機器帳號 token,名字沿用 InkStoneCo#14 已建立的那把, # 不要新造一把。值本身不寫在這支腳本或任何檔案裡。 # # 這支腳本做兩件事: # 1. 設定 git URL 重寫,讓任何對 git.uncle6.me 的 clone 都能用 GITEA_TOKEN_CLAUDE_CODE 認證 # (官方文件對「CI/CD 裝私有 marketplace」建議的寫法,見 references 段)。 # 2. 直接把 ISEP 裝成 user-scope plugin ——不是「複製一份」,是跟本機一樣走 # `claude plugin marketplace add` + `claude plugin install`,裝的東西 # 100% 來自 inkstone/ISEP 這個 repo 本身,沒有第二份內容。 # # 何時跑:只在「這個 Cloud environment 第一次開 session」時跑一次, # 跑完 Anthropic 會把整個檔案系統拍成快照,之後的 session 直接沿用快照 # (不重跑,除非改了這支腳本本身、改了 allowed network hosts、或快照滿 7 天過期)。 # ⇒ 這是唯一會讓「ISEP 改了但雲端還是舊的」重新出現的地方, # 緩解法見 docs/cloud-session-bootstrap.md「已知限制」段。 set -euo pipefail if [ -z "${GITEA_TOKEN_CLAUDE_CODE:-}" ]; then echo "❌ 找不到 GITEA_TOKEN_CLAUDE_CODE —— 去 Cloud environment 的 Environment variables 加這個名字" >&2 exit 1 fi # 官方文件建議的私有 marketplace 認證寫法:只重寫這個 host 的 URL,不動其他 git 操作。 git config --global url."https://x-access-token:${GITEA_TOKEN_CLAUDE_CODE}@git.uncle6.me/".insteadOf \ "https://git.uncle6.me/" # 用乾淨網址(不帶 token)加 marketplace,實際認證交給上面那條 URL 重寫。 claude plugin marketplace add https://git.uncle6.me/inkstone/ISEP.git --scope user claude plugin install isep@inkstone --scope user echo "✅ ISEP 已裝成 user-scope plugin,之後每個 session 啟動時直接生效。"