feat: add GeminiAPIClient with SSE streaming - #16527
Conversation
Introduce the GeminiAPIClient package target to communicate with Google's Gemini REST endpoints over Server-Sent Events (SSE). - Add GeminiAPIClient backed by HTTPStreamingClient. - Namespace Generate Content API models under GenerateContentAPI enum (GenerateContentRequest, GenerateContentResponse, Content, Part, Candidate, SafetyRating, PromptFeedback). - Add typed GeminiAPIError with Duration retry-after parsing from HTTP Retry-After headers and Google RPC RetryInfo JSON details. - Support API key resolution with GOOGLE_API_KEY precedence over GEMINI_API_KEY, plus optional dynamic header providers. - Add mock unit test suite with MockGeminiURLProtocol covering errors, safety blocks, recitation, rate limits, and request timeouts. - Add integration tests against Gemini backend.
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. |
Introduce the
GeminiAPIClientpackage target to communicate with Google's Gemini REST endpoints over Server-Sent Events (SSE).GeminiAPIClientbacked byHTTPStreamingClient.MockGeminiURLProtocolcovering errors, safety blocks, recitation, rate limits, and request timeouts.