🚀 Inspiration
Every engineering team wastes 20–30 minutes daily in standups discussing what's already visible in GitLab. PRs go stale for days. Pipelines fail silently. Issues pile up unassigned. We asked ourselves — what if an AI agent could do all of this automatically?
That's how DevPulse was born.
🧠 What it does
DevPulse is a multi-step AI agent that connects to your team's GitLab repositories and:
- Fetches every team member's commits, merge requests, and issues via GitLab MCP Server
- Analyzes each contributor's activity and scores them 0–100
- Detects blockers — stale PRs (3+ days), failed CI pipelines, unassigned critical issues — each with a priority score 1–10
- Generates a human-quality AI standup for every developer using Gemini 2.0 Flash
- Takes real action — creates GitLab issues, assigns team members, posts comments autonomously
All of this happens in one click from a dark terminal-style dashboard.
🏗️ How we built it
Agent Architecture — 5-node LangGraph pipeline:
- Node 1 — Contribution Analyzer pulls commits/MRs/issues from GitLab REST API
- Node 2 — Blocker Detector scans for stale PRs, failed pipelines, unassigned issues
- Node 3 — Gemini 2.0 Flash generates personalized standups per developer
- Node 4 — Action Executor uses GitLab MCP Server to create issues, assign users, post comments
- Node 5 — Gemini writes a final agent summary report for the engineering manager
Tech Stack:
- Google Cloud Agent Builder + Gemini 2.0 Flash for reasoning
- GitLab MCP Server for real write actions (create/assign/comment)
- LangGraph for multi-step orchestration
- FastAPI (Python 3.13) backend
- React + Vite frontend deployed on GitHub Pages
🚧 Challenges we faced
- GitLab MCP authentication — getting the MCP server to authenticate and take write actions required careful token scoping and error handling
- Dependency conflicts — Python 3.13 + LangGraph + MCP had conflicting pydantic versions that needed careful resolution
- Concurrent async calls — fetching commits, MRs, and pipelines simultaneously across multiple repos without rate limiting
- Prompt engineering — making Gemini write standups that sound human, not robotic, required several iterations
🏆 Accomplishments
- Built a fully working 5-node LangGraph agent in under 48 hours
- GitLab MCP integration that actually writes to GitLab — not just reads
- Real-time blocker detection with intelligent priority scoring
- AI standups that engineering managers actually want to read
- 5-person team, each owning an independent module that plugs into one pipeline
📚 What we learned
- How to build production-grade multi-step agents with LangGraph
- Deep integration with GitLab MCP Server for agentic write actions
- How Gemini 2.0 Flash handles structured engineering data for natural language generation
- Async Python patterns for concurrent API calls across multiple repos
🔮 What's next
- Slack/Discord integration — deliver standups directly to team channels
- GitHub support alongside GitLab
- Weekly velocity trend reports
- Auto PR reviewer assignment based on contributor expertise
- Natural language commands — "assign all stale PRs to Alice"

Log in or sign up for Devpost to join the conversation.