GitLab-CICD-Agent
agentic-cicd is an intelligent DevOps agent that automates GitLab CI/CD workflows using natural language. Users can easily set up complex pipelines, while an AI-driven multi-agent system understands, generates, pushes, and monitors actual infrastructure changes. This tool allows developers and ops engineers to manage CI/CD efficiently.
GitHub Stars
2
User Rating
Not Rated
Favorites
0
Views
15
Forks
2
Issues
0
π agentic-cicd: Automate GitLab CI/CD with Natural Language + AI
βAutomate your GitLab CI/CD workflows using natural language β powered by AI and Google Cloud.β
β¨ Overview
agentic-cicd is an intelligent DevOps agent that allows users to automate complex GitLab CI/CD workflows simply by describing what they want in natural language.
It bridges natural language commands and real infrastructure changes by using an AI-driven multi-agent system that understands, generates, pushes, and monitors CI/CD pipelines on GitLab.
Whether you're a developer looking to set up a CI/CD pipeline or an ops engineer handling deployments β this tool simplifies GitLab automation through LLMs + agents + MCP tool servers.
ποΈ Demo
π§ Key Features
π GitLab OAuth Integration β Connect your GitLab account securely.
π¬ Natural Language Input β Describe what you want, like:
Set up CI to run tests on push and deploy to GKE when main branch is updated.π€ Multi-Agent AI Engine β Understands the request and plans accordingly.
βοΈ Pipeline & Infra Generation β Generates
.gitlab-ci.yml, Dockerfile, Terraform, Helm config, etc.β» Push + Merge Request β Pushes the generated files to your GitLab repo and opens an MR.
π Pipeline Monitoring β Optionally track status of the build, test, and deployment stages.
π§Ή MCP Server/Client Architecture β Modular tool abstraction to interface with GitLab API via agents.
π§Ή Architecture
β» System Flow
π§ Multi-Agent Architecture β LangGraphJS Supervisor Pattern
This project follows the LangGraphJS Multi-Agent Supervisor Pattern to automate GitLab CI/CD workflows using natural language commands.
π§ββοΈ 1. Supervisor Agent
- The central decision-maker.
- Receives natural language input from the user.
- Maintains shared memory and execution state across agents.
- Dynamically delegates to sub-agents using a graph-based control flow.
π Agent Workflow Graph
The Supervisor uses LangGraph to define a directed graph of agents, where edges represent conditional flows based on task results.
π€ Sub-Agents
Each agent handles a distinct responsibility within the pipeline.
π§ PlanAgent
βUnderstand what needs to be done.β
- Parses user intent and decomposes it into logical subtasks.
- Understands GitLab CI/CD terminology and translates user commands accordingly.
- Outputs a plan with goals such as:
- Generate
.gitlab-ci.yml - Create
Dockerfile - Define cloud deployment strategy (e.g., GKE)
- Generate
π§βπ» CodeAgent
βWrite the code/configuration needed.β
- Converts the structured plan into CI/CD artifacts such as:
.gitlab-ci.ymlDockerfileTerraform/Helmconfigurations
- Adapts generation based on selected cloud providers (GCP, AWS, etc.)
- Can scaffold standard GitLab CI templates dynamically.
π§ͺ TestAgent
βValidate the configuration before use.β
- Runs tests on generated configuration to ensure correctness.
- Performs:
- YAML linting / CI syntax validation
- Dry-run of GitLab CI if applicable
- Optional LLM-assisted analysis of pipeline logic
π¬ ChatAgent
βExplain whatβs happening or answer user queries.β
- Maintains conversation with the user.
- Can answer questions like:
- "What is this pipeline doing?"
- "Why did my build fail?"
- Pushes updates about:
- MR creation
- Pipeline execution
- Deployment status
- Can re-prompt for missing details if required
π§ GitLab MCP Tool Server (Tool Use via API)
Agents like CodeAgent and ChatAgent interact with GitLab via a dedicated Tool Server (GitLab MCP Server).
π MCP GitLab Tool Server
- A REST API wrapper around GitLabβs official APIs.
- Allows fine-grained agent control over GitLab actions like:
- Getting project info
- Creating branches/commits
- Listing and triggering pipelines
- Monitoring job statuses
- Opening Merge Requests
π€ MCP Client
- Each agent uses an MCP Client to communicate with the Tool Server.
- Benefits:
- Keeps logic clean and separated from direct API calls.
- Enables observability, tracing, and debugging of agent decisions.
- Makes actions reversible and replicable.
π Feedback Loop
User Input
βSet up CI to run tests on push and deploy to GKE when main is updated.β
Supervisor Flow
PlanAgentβ Understands the request and breaks into subgoals.CodeAgentβ Generates.gitlab-ci.yml,Dockerfile, etc.TestAgentβ Validates the generated files.GitLab MCP Serverβ Applies the changes via GitLab API (opens MR).ChatAgentβ Informs the user and monitors progress.
Pipeline Execution
- GitLab CI is triggered.
- Status is periodically updated to the user.
β Why LangGraphJS?
Structured Reasoning
Flow is modeled as a directed graph for better traceability and control.Shared Memory Across Agents
All agents work with a centralized state context.Retries and Fallbacks
Automatically retry failed tasks or re-ask user when needed.Plug-and-Play Agents
Each agent is modular, testable, and can be extended independently.
β¨ The result is a natural-language-driven GitLab CI/CD automation system powered by intelligent agents, tailored infrastructure, and real-time feedback β all orchestrated via LangGraph.
π Authorization:
- Uses the userβs OAuth token to act on their behalf.
- Each API call is scoped by the GitLab OAuth access token.
π½ Tech Stack
| Layer | Tech |
|---|---|
| Frontend | React, React Router, Vite, Tailwind |
| Backend | Node.js, Express, Supabase |
| AI Agents | LangGraphJS, LangChainJS, Gemini/GPT |
| Auth | GitLab OAuth 2.0 |
| Infra Tools | Docker, Terraform, Helm (generated) |
| Hosting | Vercel (frontend), Render (backend) |
π Getting Started
1. Clone the Repository
git clone https://github.com/your-org/agentic-cicd.git
cd agentic-cicd
2. Frontend Setup
cd frontend
npm install
Create a .env file:
VITE_BACKEND_URL=https://your-backend-url.onrender.com
VITE_GITLAB_CLIENT_ID=your_gitlab_client_id
VITE_REDIRECT_URI=https://your-frontend-url.vercel.app/oauth/callback
npm run dev
3. Backend Setup
cd backend
npm install
.env file:
GITLAB_CLIENT_ID=your_gitlab_client_id
GITLAB_CLIENT_SECRET=your_gitlab_client_secret
GITLAB_REDIRECT_URI=https://your-frontend-url.vercel.app/oauth/callback
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
GOOGLE_API_KEY=your_gemini_api_key
TAVUS_API_KEY=your_tavus_key
Build and Run:
npm run build
npm run start
π§ͺ Usage
Go to the app homepage.
Click "Connect GitLab" and authorize access.
Enter your command like:
Set up CI to run tests on push and deploy to GKE when main branch is updated.Agent will:
- Understand your intent
- Generate
.gitlab-ci.ymland Dockerfile - Push to a new branch
- Open a merge request
- Trigger a pipeline
Watch pipeline logs via GitLab or frontend.
βοΈ Deployment Guide
Frontend (Vercel)
- Link GitHub Repo β Vercel Dashboard
- Set environment variables in Settings
- Deploy
Backend (Render)
- Create new Web Service β Connect to GitHub
- Build Command:
npm run build - Start Command:
node dist/index.js - Add your environment variables
β Troubleshooting
| Issue | Fix |
|---|---|
CORS error |
Ensure backend sets correct Access-Control-Allow-Origin |
OAuth redirect 404 |
Check GitLab app redirect URI matches deployed frontend |
Failed to fetch |
Backend must be live + CORS enabled |
503 MCP Init |
GitLab token expired or MCP endpoint down |
CI config invalid |
Re-run or correct command syntax |
π€ Contributing
We welcome PRs and ideas!
# Fork -> Clone -> Create Branch -> Code -> Commit -> PR
Please open issues for:
- Bugs
- New agent tasks
- GitLab features you'd like automated
π License
MIT License Β© 2025 MemeVerse CICD Dev Team
π‘ Inspired By
ποΈ Folder Structure (Simplified)
agentic-cicd/
β
βββ frontend/
β βββ App.jsx
β βββ pages/
β βββ components/
β
βββ backend/
β βββ agents/
β βββ routes/
β |ββ services/
|-β mcp-server/
β
βββ .env.example
βββ README.md
π¬ Contact
For inquiries or collaborations:
π§ shalwinsanju.25cs@licet.ac.in
π¦ Twitter: @samshalwin