feat(providers): Support Google Gemini via Application Default Credentials (ADC) and Workload Identity
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 17.9k
- Forks
- 1.5k
- Avg merge
- 5d 10h
- Merged PRs (30d)
- 66
Description
SkillSpector supports hosted providers like OpenAI, Anthropic, Bedrock, and NVIDIA Build, but does not support Google Gemini out of the box.
Currently, Google's Gemini platform (or whatever the current naming is) is not supported without some cumbersome workarounds and static API keys outside IAM controls.
Proposed Solution:
Add a native SKILLSPECTOR_PROVIDER=gemini provider that:
- Authenticates using Google Cloud ADC (
google-auth), supporting local development (gcloud auth application-default login) and GKE Workload Identity seamlessly - Connects to Google Cloud's OpenAI-compatible Gemini endpoint (
aiplatform.googleapis.com/v1/.../endpoints/openapi), reusing the existing chat-model plumbing - Automatically applies the
google/wire prefix while keeping bare model names in registries and user config - Correctly routes
global,us,eu, and regional endpoints - Fails closed with an actionable error when
GOOGLE_CLOUD_PROJECTis missing (without silently falling back toOPENAI_API_KEY) - Ships a bundled
model_registry.yamlwith current Gemini 3.x/2.5 token limits
(Note: PR #12 previously explored Vertex AI support, but has become stale and conflicting, uses their old naming, outdated models, and doesn't cover as many cases. I think that fresh implementation targeting Google's current v1 Gemini endpoint and modern conventions would resolve this cleanly.)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the existing hosted-provider and chat-model plumbing, then inspect model_registry.yaml for the provider and model-limit conventions. Done means Gemini works through ADC with regional endpoints, prefixes model names correctly, requires GOOGLE_CLOUD_PROJECT, and includes current Gemini model limits without using OPENAI_API_KEY as a fallback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- gcp, python
- Domain
- api, authentication, backend, cloud
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100