mirror of
https://github.com/Monadical-SAS/cubbi.git
synced 2025-12-20 04:09:06 +00:00
feat: support config openai.url for goose/opencode/aider
This commit is contained in:
@@ -208,9 +208,10 @@ class ContainerManager:
|
||||
# Set SSH environment variable
|
||||
env_vars["CUBBI_SSH_ENABLED"] = "true" if ssh else "false"
|
||||
|
||||
# Pass API keys from host environment to container for local development
|
||||
api_keys = [
|
||||
# Pass some environment from host environment to container for local development
|
||||
keys = [
|
||||
"OPENAI_API_KEY",
|
||||
"OPENAI_URL",
|
||||
"ANTHROPIC_API_KEY",
|
||||
"ANTHROPIC_AUTH_TOKEN",
|
||||
"ANTHROPIC_CUSTOM_HEADERS",
|
||||
@@ -220,7 +221,7 @@ class ContainerManager:
|
||||
"LANGFUSE_INIT_PROJECT_SECRET_KEY",
|
||||
"LANGFUSE_URL",
|
||||
]
|
||||
for key in api_keys:
|
||||
for key in keys:
|
||||
if key in os.environ and key not in env_vars:
|
||||
env_vars[key] = os.environ[key]
|
||||
|
||||
|
||||
@@ -101,6 +101,12 @@ class AiderPlugin(ToolPlugin):
|
||||
"OPENROUTER_API_KEY": "OPENROUTER_API_KEY",
|
||||
}
|
||||
|
||||
# Check for OpenAI API base URL
|
||||
openai_url = os.environ.get("OPENAI_URL")
|
||||
if openai_url:
|
||||
env_vars["OPENAI_API_BASE"] = openai_url
|
||||
self.status.log(f"Set OpenAI API base URL to {openai_url}")
|
||||
|
||||
# Check for standard API keys
|
||||
for env_var, aider_var in api_key_mappings.items():
|
||||
value = os.environ.get(env_var)
|
||||
|
||||
@@ -111,6 +111,13 @@ class GoosePlugin(ToolPlugin):
|
||||
config_data["GOOSE_PROVIDER"] = goose_provider
|
||||
self.status.log(f"Set GOOSE_PROVIDER to {goose_provider}")
|
||||
|
||||
# If provider is OpenAI and OPENAI_URL is set, configure OPENAI_HOST
|
||||
if goose_provider.lower() == "openai":
|
||||
openai_url = os.environ.get("OPENAI_URL")
|
||||
if openai_url:
|
||||
config_data["OPENAI_HOST"] = openai_url
|
||||
self.status.log(f"Set OPENAI_HOST to {openai_url}")
|
||||
|
||||
try:
|
||||
with config_file.open("w") as f:
|
||||
yaml.dump(config_data, f)
|
||||
|
||||
@@ -117,6 +117,16 @@ class OpencodePlugin(ToolPlugin):
|
||||
api_key = os.environ.get(env_var)
|
||||
if api_key:
|
||||
auth_data[provider] = {"type": "api", "key": api_key}
|
||||
|
||||
# Add custom endpoint URL for OpenAI if available
|
||||
if provider == "openai":
|
||||
openai_url = os.environ.get("OPENAI_URL")
|
||||
if openai_url:
|
||||
auth_data[provider]["baseURL"] = openai_url
|
||||
self.status.log(
|
||||
f"Added OpenAI custom endpoint URL: {openai_url}"
|
||||
)
|
||||
|
||||
self.status.log(f"Added {provider} API key to auth configuration")
|
||||
|
||||
# Only write file if we have at least one API key
|
||||
|
||||
@@ -14,6 +14,7 @@ ENV_MAPPINGS = {
|
||||
"services.langfuse.public_key": "LANGFUSE_INIT_PROJECT_PUBLIC_KEY",
|
||||
"services.langfuse.secret_key": "LANGFUSE_INIT_PROJECT_SECRET_KEY",
|
||||
"services.openai.api_key": "OPENAI_API_KEY",
|
||||
"services.openai.url": "OPENAI_URL",
|
||||
"services.anthropic.api_key": "ANTHROPIC_API_KEY",
|
||||
"services.openrouter.api_key": "OPENROUTER_API_KEY",
|
||||
"services.google.api_key": "GOOGLE_API_KEY",
|
||||
|
||||
Reference in New Issue
Block a user