Inspiration

Every developer has lived this: the CI pipeline fails, and suddenly you're a detective in a crime scene full of YAML, stack traces, and git blame. I got tired of playing the guessing game. I wanted something that could just tell me which commit broke the build and why. So I built it.

What it does

BugBlamer analyzes CI logs and git commit diffs, then uses an LLM to figure out which commit most likely caused the failure. You can either:

  1. Upload your logs and diffs manually.
  2. Or let the app pull everything from GitLab using the Job ID, Project ID, and a token. It then generates a root cause analysis in plain English so you can fix things faster and with less hair-pulling.

How we built it

I built BugBlamer over a few long evenings using FastAPI for the backend, since I wanted something fast and flexible. The UI is rendered using Jinja2 templates to keep things lightweight and server-side. For the core analysis, I connected it to LLaMA model. To get real-time data from failed pipelines, I integrated with the GitLab REST API to fetch job logs and commit diffs. Finally, I containerized the whole app with Docker and deployed it to Google Cloud Run, which made it easy to go from local testing to production without much hassle.

Challenges we ran into

This was my first time using many of the tools involved in this project. I had never built anything with FastAPI before, never deployed to Google Cloud Run, and was completely new to the GitLab API. Figuring out how everything worked together was a big challenge. I relied heavily on documentation and official resources, and to my relief, they were actually good. They helped me get unstuck more than once.

The real challenge was tying all the parts together. I had to fetch logs and diffs from GitLab, format them properly for AI input, connect to LLMs, and deploy the whole thing in a secure way. Managing API keys, writing clean prompts, and debugging across different services took a lot of focus. But with persistence and a lot of trial and error, I kept moving forward.

Accomplishments that we're proud of

I built and deployed a working AI tool with a completely new tech stack. That’s the biggest win for me. I went from having zero experience with these tools to creating something that works smoothly from end to end. The app fetches logs, analyzes failures with AI, and delivers useful results and it’s live on the internet.

More importantly, I stuck with it. I learned everything on the fly, made it through deployment issues and API bugs, and finished with something I’m genuinely proud of. This was a solo build, and I’m glad I saw it through.

What we learned

This project taught me a lot in a short time. I learned how to work with FastAPI and build out an actual backend workflow. I figured out how to integrate and run large language models in a real application. I also got hands-on experience with the GitLab API, how to fetch job logs, commit diffs, and tie everything together.

On top of that, I learned how to deploy with Google Cloud Run, containerize with Docker, and manage environment variables and secrets securely. Most importantly, I learned how to take a problem I personally experience as a developer and build something useful around it. That process itself was a great learning experience.

What's next for BugBlamer

There’s a lot I still want to add. The top priority is improving GitLab integration so users can log in and select from recent jobs instead of pasting tokens manually. I also plan to support GitHub and other CI tools to make the tool more widely usable.

Another big step is building a proper frontend dashboard. I want users to be able to save their past analyses, revisit reports, and track recurring issues over time. A clean and useful UI would make the experience much smoother and more collaborative. Eventually, I’d love for BugBlamer to go beyond identifying problems and start suggesting real code fixes. The goal is to make debugging CI failures smarter, faster, and a lot less frustrating. This is just the beginning.

Built With

Share this project:

Updates