(provider: &str)
| 4032 | } |
| 4033 | |
| 4034 | fn provider_secret_keys(provider: &str) -> Vec<&'static str> { |
| 4035 | match provider { |
| 4036 | "anthropic" => vec!["ANTHROPIC_API_KEY"], |
| 4037 | "openai" => vec!["OPENAI_API_KEY"], |
| 4038 | "openrouter" => vec!["OPENROUTER_API_KEY"], |
| 4039 | "google" => vec!["GOOGLE_API_KEY"], |
| 4040 | "mistral" => vec!["MISTRAL_API_KEY"], |
| 4041 | "groq" => vec!["GROQ_API_KEY"], |
| 4042 | "xai" => vec!["XAI_API_KEY"], |
| 4043 | "deepseek" => vec!["DEEPSEEK_API_KEY"], |
| 4044 | "cohere" => vec!["COHERE_API_KEY"], |
| 4045 | "together" => vec!["TOGETHER_API_KEY"], |
| 4046 | "perplexity" => vec!["PERPLEXITY_API_KEY"], |
| 4047 | "cerebras" => vec!["CEREBRAS_API_KEY"], |
| 4048 | "deepinfra" => vec!["DEEPINFRA_API_KEY"], |
| 4049 | "vercel" => vec!["VERCEL_API_KEY"], |
| 4050 | "gitlab" => vec!["GITLAB_TOKEN"], |
| 4051 | "github-copilot" => vec!["GITHUB_COPILOT_TOKEN"], |
| 4052 | "bedrock" | "amazon-bedrock" => { |
| 4053 | vec!["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION"] |
| 4054 | } |
| 4055 | "azure" => vec!["AZURE_OPENAI_API_KEY", "AZURE_OPENAI_ENDPOINT"], |
| 4056 | _ => vec![], |
| 4057 | } |
| 4058 | } |
| 4059 | |
| 4060 | async fn choose_github_model() -> anyhow::Result<String> { |
| 4061 | if let Ok(model) = std::env::var("OPENCODE_GITHUB_MODEL") { |
no outgoing calls
no test coverage detected