test-gitea-token:「不設 CLAUDE_PROJECT_DIR」的案例要真的 -u 掉(inkstone/ISEP#47)
在 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 <noreply@anthropic.com>
This commit is contained in:
@@ -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 )
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user