Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This pull request introduces a comprehensive AI-powered build failure diagnosis system for deployment logs, supporting multiple providers (OpenAI, Gemini, Grok, Claude). It adds core logic for extracting error context from logs, provider-agnostic diagnosis orchestration, and provider-specific HTTP clients. The implementation is covered by detailed tests.
The most important changes are:
AI Diagnosis Core Logic:
diagnoseDeploymentFailurefunction, which orchestrates log retrieval, error context extraction, provider selection, AI call, response parsing, and diagnosis persistence. The logic is provider-agnostic and supports custom prompts and models.resolveProviderConfigto select the AI provider, model, and API key from user input, settings, or environment, with robust error handling.Provider Integrations:
callOpenAi,callGemini,callGrok, andcallClaude, each handling request/response formats and error handling for their respective APIs. [1] [2] [3] [4]Log Error Context Extraction:
extractBuildErrorContextto clean, filter, and summarize deployment logs, stripping ANSI codes and focusing on relevant error lines for LLM input.Testing:
ai.test.tscovering log extraction, provider config resolution, all provider clients, connection testing, and diagnosis parsing.Exports and Types:
These changes lay the foundation for robust, multi-provider AI-driven build failure analysis in the deployment platform.
Type of Change
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
bun testinapps/api/)Checklist
bun testinapps/api/and all tests passbun run sync-versions)