From 50acdf22a1a96d3c7048f84c41d7ab168f92fdd6 Mon Sep 17 00:00:00 2001 From: isep-hand Date: Sat, 19 Sep 2026 12:21:13 +0800 Subject: [PATCH] =?UTF-8?q?test-gitea-token=EF=BC=9A=E3=80=8C=E4=B8=8D?= =?UTF-8?q?=E8=A8=AD=20CLAUDE=5FPROJECT=5FDIR=E3=80=8D=E7=9A=84=E6=A1=88?= =?UTF-8?q?=E4=BE=8B=E8=A6=81=E7=9C=9F=E7=9A=84=20-u=20=E6=8E=89=EF=BC=88i?= =?UTF-8?q?nkstone/ISEP#47=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 Claude Code session 裡跑(CLAUDE_PROJECT_DIR 一定有值),③④⑤ 六條會繼承到 InkStoneCo, 解到真的 token ⇒ 10/16。改成空值時 env -u CLAUDE_PROJECT_DIR(-u 排在 NAME=VALUE 前面)。 驗:不設/設成 InkStoneCo/環境裡另有 token 三種都 16/16。 Co-Authored-By: Claude Opus 5 --- scripts/test-gitea-token.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/test-gitea-token.sh b/scripts/test-gitea-token.sh index 2f5ce3d..e5483cb 100755 --- a/scripts/test-gitea-token.sh +++ b/scripts/test-gitea-token.sh @@ -38,7 +38,9 @@ mkrepo(){ # $1=repo 目錄 $2=dirty|clean $3=有沒有 .env(env|noenv) resolve_py(){ # $1=cwd $2=CLAUDE_PROJECT_DIR(空=不設) $3=setenv|noenv local envargs="-u GITEA_TOKEN_CLAUDE_CODE -u GITEA_TOKEN" [ "$3" = "setenv" ] && envargs="GITEA_TOKEN_CLAUDE_CODE=$TOK" - local pd=""; [ -n "$2" ] && pd="CLAUDE_PROJECT_DIR=$2" + # 空=真的不設:CC session 會繼承一個 CLAUDE_PROJECT_DIR,不 -u 掉就會解到真的 token(09-19 在本機實撞)。 + # env 的 -u 一定要排在 NAME=VALUE 前面,所以「要設」時放在最後、「不設」時併進 -u 那串。 + local pd=""; if [ -n "$2" ]; then pd="CLAUDE_PROJECT_DIR=$2"; else envargs="-u CLAUDE_PROJECT_DIR $envargs"; fi GOT=$( cd "$1" && env $envargs $pd python3 -c " import sys; sys.path.insert(0,'$REPO/hooks/lib') from gitea_token import gitea_token @@ -47,7 +49,9 @@ print(gitea_token() or '')" 2>/dev/null ) resolve_sh(){ # 同上,走 shell 版 local envargs="-u GITEA_TOKEN_CLAUDE_CODE -u GITEA_TOKEN" [ "$3" = "setenv" ] && envargs="GITEA_TOKEN_CLAUDE_CODE=$TOK" - local pd=""; [ -n "$2" ] && pd="CLAUDE_PROJECT_DIR=$2" + # 空=真的不設:CC session 會繼承一個 CLAUDE_PROJECT_DIR,不 -u 掉就會解到真的 token(09-19 在本機實撞)。 + # env 的 -u 一定要排在 NAME=VALUE 前面,所以「要設」時放在最後、「不設」時併進 -u 那串。 + local pd=""; if [ -n "$2" ]; then pd="CLAUDE_PROJECT_DIR=$2"; else envargs="-u CLAUDE_PROJECT_DIR $envargs"; fi GOT=$( cd "$1" && env $envargs $pd sh -c ". $REPO/$SHLIB; gitea_token" 2>/dev/null ) }