mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-04-28 03:49:31 +00:00
fix(e2e): fix OPENROUTER_API_KEY fallback and sprite env whitelist (#2491)
On QA VMs running Claude Code via OpenRouter, the API key is stored as ANTHROPIC_AUTH_TOKEN. Add a fallback in common.sh so e2e.sh picks up the key from ANTHROPIC_AUTH_TOKEN when ANTHROPIC_BASE_URL points to openrouter.ai and OPENROUTER_API_KEY is unset. Also add SPRITE_NAME and SPRITE_ORG to the headless env var whitelist in provision.sh — these are emitted by _sprite_headless_env() but were missing from the positive whitelist, causing every Sprite provisioning attempt to log errors and silently skip the env vars. Co-authored-by: spawn-qa-bot <qa@openrouter.ai> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
37fa334d78
commit
68abbee4df
2 changed files with 16 additions and 1 deletions
|
|
@ -15,6 +15,21 @@ case "${PROVISION_TIMEOUT}" in ''|*[!0-9]*) PROVISION_TIMEOUT=720 ;; esac
|
|||
case "${INSTALL_WAIT}" in ''|*[!0-9]*) INSTALL_WAIT=600 ;; esac
|
||||
case "${INPUT_TEST_TIMEOUT}" in ''|*[!0-9]*) INPUT_TEST_TIMEOUT=120 ;; esac
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# OpenRouter API key fallback
|
||||
#
|
||||
# On QA VMs that run Claude Code via OpenRouter, the API key is stored as
|
||||
# ANTHROPIC_AUTH_TOKEN (because Claude Code uses ANTHROPIC_BASE_URL + token).
|
||||
# Export OPENROUTER_API_KEY from ANTHROPIC_AUTH_TOKEN when using OpenRouter.
|
||||
# ---------------------------------------------------------------------------
|
||||
if [ -z "${OPENROUTER_API_KEY:-}" ] && [ -n "${ANTHROPIC_AUTH_TOKEN:-}" ]; then
|
||||
case "${ANTHROPIC_BASE_URL:-}" in
|
||||
*openrouter*)
|
||||
export OPENROUTER_API_KEY="${ANTHROPIC_AUTH_TOKEN}"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Active cloud (set by load_cloud_driver)
|
||||
ACTIVE_CLOUD=""
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ provision_agent() {
|
|||
# Uses sed instead of BASH_REMATCH for macOS bash 3.2 compatibility.
|
||||
# Positive whitelist: only variables actually emitted by cloud_headless_env
|
||||
# functions are allowed. This prevents injection of arbitrary env vars.
|
||||
_ALLOWED_HEADLESS_VARS=" LIGHTSAIL_SERVER_NAME AWS_DEFAULT_REGION LIGHTSAIL_BUNDLE DO_DROPLET_NAME DO_DROPLET_SIZE DO_REGION GCP_INSTANCE_NAME GCP_PROJECT GCP_ZONE GCP_MACHINE_TYPE HETZNER_SERVER_NAME HETZNER_SERVER_TYPE HETZNER_LOCATION "
|
||||
_ALLOWED_HEADLESS_VARS=" LIGHTSAIL_SERVER_NAME AWS_DEFAULT_REGION LIGHTSAIL_BUNDLE DO_DROPLET_NAME DO_DROPLET_SIZE DO_REGION GCP_INSTANCE_NAME GCP_PROJECT GCP_ZONE GCP_MACHINE_TYPE HETZNER_SERVER_NAME HETZNER_SERVER_TYPE HETZNER_LOCATION SPRITE_NAME SPRITE_ORG "
|
||||
while IFS= read -r _env_line; do
|
||||
# Skip lines that don't look like export VAR="VALUE"
|
||||
case "${_env_line}" in
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue