forked from farhoodlabs/skills
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5f3f0ab94d |
@@ -17,7 +17,7 @@ Validates the `AGENT_HOME` environment variable, derives `GH_CONFIG_DIR` as `$AG
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
bash agent-setup/scripts/setup.sh
|
bash agent-setup/scripts/setup.sh
|
||||||
source ~/.env
|
source "$AGENT_HOME/.env"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
|||||||
@@ -5,6 +5,12 @@ die() { echo "ERROR: $*" >&2; exit 1; }
|
|||||||
|
|
||||||
[[ -z "${AGENT_HOME:-}" ]] && die "AGENT_HOME is not set"
|
[[ -z "${AGENT_HOME:-}" ]] && die "AGENT_HOME is not set"
|
||||||
|
|
||||||
|
# Validate: never accept an inherited GH_CONFIG_DIR that points outside AGENT_HOME
|
||||||
|
if [[ -n "${GH_CONFIG_DIR:-}" && "$GH_CONFIG_DIR" != "$AGENT_HOME"* ]]; then
|
||||||
|
echo "WARN: Inherited GH_CONFIG_DIR '$GH_CONFIG_DIR' is outside AGENT_HOME. Overriding." >&2
|
||||||
|
unset GH_CONFIG_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
# Derive GH_CONFIG_DIR — gh stores config at ~/.config/gh by default,
|
# Derive GH_CONFIG_DIR — gh stores config at ~/.config/gh by default,
|
||||||
# so we mirror that structure under AGENT_HOME
|
# so we mirror that structure under AGENT_HOME
|
||||||
export GH_CONFIG_DIR="$AGENT_HOME/.github"
|
export GH_CONFIG_DIR="$AGENT_HOME/.github"
|
||||||
|
|||||||
@@ -64,10 +64,15 @@ fi
|
|||||||
mkdir -p "$GH_TOKEN_DIR"
|
mkdir -p "$GH_TOKEN_DIR"
|
||||||
GH_TOKEN_FILE="$GH_TOKEN_DIR/.gh-token"
|
GH_TOKEN_FILE="$GH_TOKEN_DIR/.gh-token"
|
||||||
|
|
||||||
|
# Validate GH_CONFIG_DIR is inside AGENT_HOME (prevents writing the token to a foreign workspace)
|
||||||
|
if [[ -n "${GH_CONFIG_DIR:-}" && -n "${AGENT_HOME:-}" && "$GH_CONFIG_DIR" != "$AGENT_HOME"* ]]; then
|
||||||
|
die "GH_CONFIG_DIR '$GH_CONFIG_DIR' is outside AGENT_HOME '${AGENT_HOME}'. Refusing to write token to a foreign workspace."
|
||||||
|
fi
|
||||||
|
|
||||||
printf '%s' "$TOKEN" > "$GH_TOKEN_FILE"
|
printf '%s' "$TOKEN" > "$GH_TOKEN_FILE"
|
||||||
chmod 600 "$GH_TOKEN_FILE"
|
chmod 600 "$GH_TOKEN_FILE"
|
||||||
|
|
||||||
# --- Authenticate gh CLI ---
|
# --- Authenticate gh CLI ---
|
||||||
gh auth login --with-token < "$GH_TOKEN_FILE"
|
GH_CONFIG_DIR="$GH_TOKEN_DIR" gh auth login --with-token < "$GH_TOKEN_FILE"
|
||||||
|
|
||||||
echo "Authenticated. Token written to $GH_TOKEN_FILE (expires in 1 hour)."
|
echo "Authenticated. Token written to $GH_TOKEN_FILE (expires in 1 hour)."
|
||||||
|
|||||||
Reference in New Issue
Block a user