βAutomate your GitLab CI/CD workflows using natural language β powered by AI and Google Cloud.β
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.
-
π 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.
This project follows the LangGraphJS Multi-Agent Supervisor Pattern to automate GitLab CI/CD workflows using natural language commands.
- 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.
The Supervisor uses LangGraph to define a directed graph of agents, where edges represent conditional flows based on task results.
Each agent handles a distinct responsibility within the pipeline.
β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
βWrite the code/configuration needed.β
- Converts the structured plan into CI/CD artifacts such as:
.gitlab-ci.yml
Dockerfile
Terraform
/Helm
configurations
- Adapts generation based on selected cloud providers (GCP, AWS, etc.)
- Can scaffold standard GitLab CI templates dynamically.
β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
β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
Agents like CodeAgent
and ChatAgent
interact with GitLab via a dedicated Tool Server (GitLab MCP 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
- 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.
-
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.
-
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.
- Uses the userβs OAuth token to act on their behalf.
- Each API call is scoped by the GitLab OAuth access token.
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) |
git clone https://github.com/your-org/agentic-cicd.git
cd agentic-cicd
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
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
-
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.yml
and Dockerfile - Push to a new branch
- Open a merge request
- Trigger a pipeline
-
Watch pipeline logs via GitLab or frontend.
- Link GitHub Repo β Vercel Dashboard
- Set environment variables in Settings
- Deploy
- Create new Web Service β Connect to GitHub
- Build Command:
npm run build
- Start Command:
node dist/index.js
- Add your environment variables
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 |
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
MIT License Β© 2025 MemeVerse CICD Dev Team
agentic-cicd/
β
βββ frontend/
β βββ App.jsx
β βββ pages/
β βββ components/
β
βββ backend/
β βββ agents/
β βββ routes/
β |ββ services/
|-β mcp-server/
β
βββ .env.example
βββ README.md
For inquiries or collaborations: π§ [email protected] π¦ Twitter: @samshalwin