# Gitlab

> GitLab code repository integration for investigating code changes, deployments, commits, MRs, and suggesting fixes during RCA

- Skill: `arvo-ai/gitlab` (Agent Skill)
- Install (CLI): `npx skillmds@latest add arvo-ai/gitlab`
- Raw SKILL.md: https://api.skillmd.com/api/skills/arvo-ai/gitlab/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: Arvo-AI (https://skillmd.com/u/arvo-ai)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/arvo-ai/gitlab

---


# GitLab Integration

## Overview
GitLab integration for investigating code changes during Root Cause Analysis and managing code fixes.
Connected via org-level Group Access Token. Instance: {base_url}

## Instructions

### Single Tool — Multiple Actions
All GitLab operations use the `gitlab` tool with an `action` parameter:

| Action | Purpose | Required Params |
|--------|---------|-----------------|
| `list_projects` | Discover connected projects | — |
| `deployment_check` | CI/CD pipelines | repo (or auto) |
| `commits` | Recent commits + correlation | repo (or auto) |
| `diff` | File changes for a commit | commit_sha |
| `merge_requests` | Merged MRs in time window | repo (or auto) |
| `suggest_fix` | Propose a code fix | file_path, suggested_content, fix_description, root_cause_summary |
| `apply_fix` | Create MR from suggestion | suggestion_id |
| `commit_terraform` | Push Terraform files | repo, commit_message |

### RCA Investigation Workflow
Code changes are the most common root cause of incidents.
Investigate GitLab BEFORE deep-diving into infrastructure.

**Step 1 — Discover projects:**
`gitlab(action='list_projects')` — returns all connected projects.

**Step 2 — Check pipelines (did something just ship?):**
`gitlab(action='deployment_check', repo='namespace/project', incident_time='<ISO8601>')`
Finds failed pipelines and pipelines completed within 2 hours of the incident.

**Step 3 — Check commits (what code changed?):**
`gitlab(action='commits', repo='namespace/project', incident_time='<ISO8601>')`
Lists commits with automatic suspicious-commit flagging.

**Step 4 — Inspect suspicious changes:**
`gitlab(action='diff', repo='namespace/project', commit_sha='<sha>')`
Shows file-level additions/deletions. Prioritize config/infra files.

**Step 5 — Check merged MRs:**
`gitlab(action='merge_requests', repo='namespace/project', incident_time='<ISO8601>')`
Finds MRs merged in the time window; recently merged MRs are flagged.

### Post-RCA Remediation (after user approval)

These actions are NOT part of the RCA investigation. Only use after presenting findings and receiving user approval.

**Suggest fix:**
`gitlab(action='suggest_fix', file_path=..., suggested_content=..., fix_description=..., root_cause_summary=...)`
Suggests a fix stored for user review. User can approve, then use `action='apply_fix'`.

**Apply fix (requires user approval):**
`gitlab(action='apply_fix', suggestion_id=<id>)`
Creates a branch and Merge Request with the approved fix.

### Important Rules
- Pass `incident_time` on every RCA call for automatic time correlation.
- Use `time_window_hours` (default 24) to widen/narrow the search.
- If only one project connected, `repo` auto-resolves. If multiple, pass `repo=` explicitly.
- Projects are REMOTE — use the gitlab tool to read, never local shell commands.
- Look for: config changes, k8s manifests, Terraform, dependency updates.

