Inspiration: Every developer knows the frustration of a broken CI/CD pipeline. You push code, the pipeline goes red, and suddenly you're spending 20–30 minutes digging through walls of log output trying to figure out what broke and why. As a QA engineer with 11 years of experience, I've lived this pain daily. I built CI/CD Guardian to eliminate it completely.
What it does:CI/CD Guardian Agent monitors your GitLab CI/CD pipelines and acts the moment one fails. It reads the job log automatically, sends it to Gemini AI for intelligent diagnosis, and creates a labeled GitLab issue with the root cause and exact fix steps — all in under 10 seconds. What used to take a developer 30 minutes now happens automatically while they stay focused on building.
How we built it: Built entirely in Python using three core components. The GitLab API reads failing pipeline logs and creates issues automatically. Gemini 2.5 Flash analyzes the log and generates a structured diagnosis with root cause and fix recommendations. Google Cloud Agent Platform ties it together as the agent orchestration layer. The agent follows a simple but powerful loop — detect failure, read log, diagnose, act.
Challenges we ran into: Getting the GitLab API to correctly scope failed jobs took some debugging — GitLab labels job statuses differently depending on the pipeline configuration. Connecting to Vertex AI required billing setup which we worked around by using the Gemini API directly.
Accomplishments that we're proud of: The end-to-end flow works reliably — a real pipeline fails, the agent reads it, Gemini diagnoses it accurately, and a properly labeled GitLab issue appears automatically with actionable fix steps.
What we learned: Gemini is remarkably good at reading structured log output and producing developer-friendly explanations. The key insight was framing the prompt from the perspective of a senior QA engineer — that context dramatically improved the quality of the diagnosis.
What's next for CI/CD Guardian Agent: The immediate next step is adding MR comment integration — posting the diagnosis directly on the merge request that caused the failure, so the developer sees it without even opening Issues.
Log in or sign up for Devpost to join the conversation.