Developer tools
Connect agents to GitLab projects and events.
Agents review merge requests, triage issues, and explain failed pipelines from their job logs, using the GitLab REST API on GitLab.com or your own instance. GitLab trigger events start an agent on pushes, merge requests, issues, comments, pipelines, jobs, deployments, releases, and other GitLab events.
5,000 free credits to start.
Agent reach
GitLab REST API
The full surface, searched at run time.
Connect with
- API key
- Your own OAuth app
Connect with an access token that has the api scope, or with your own GitLab OAuth app that has the api and mcp scopes. Helios adds the webhook for trigger events to projects where the token has the Maintainer role, and to a group you name where it has the Owner role. GitLab Self-Managed works too, and its triggers need GitLab 19.0 or later.
Event triggers
Yes · 5 events
Plus manual, schedule, and signed webhook.
What the agent can do
What agents do with GitLab
Helios searches the GitLab REST API at run time. The agent finds the endpoint the task needs and calls it.
- Call GitLab REST API endpoints with your connection's permissions.
- Open merge requests, read their diffs, and leave review comments.
- Create, label, and close issues, and reply in their threads.
- Read pipeline and job status, fetch a failed job's log, and retry jobs.
- Read files, branches, tags, and commits at any ref, and download job artifacts.
- Start a run on pushes and tags, merge request and issue changes, comments, pipeline and job status, deployments, releases, and group membership changes.
Examples
Tasks you can hand to a GitLab agent
Review every new merge request
The agent reads the diff, checks it against the project's conventions, and leaves a review comment for a person to review.
On each new merge request into main: review the diff and comment with findings.
- gitlab·read the merge request and diff
- gitlab·read CONTRIBUTING.md and related files
- code·check the changed functions
- gitlab·post a review comment
Reviewed !318
- One missing null check in the invoice parser
- New endpoint has no test
- Naming matches the project's conventions
Explain a failed pipeline
When a pipeline on main fails, the agent reads the failed job's log, compares recent changes, and files an issue with its findings.
When a pipeline on main fails, find the cause and open an issue.
- gitlab·list the pipeline's failed jobs
- gitlab·read the job log
- gitlab·compare with the last passing commit
- gitlab·open an issue with the cause
Issue #904 opened
- test:unit failed on a timezone assertion
- Introduced by the commit that changed the date helper
- Assigned to that commit's author
Answer questions in comments
When someone asks the agent a question on a merge request or issue, it looks up the answer and replies in the thread.
When a comment mentions the agent, answer on the same merge request or issue.
- gitlab·read the comment and the thread
- gitlab·search the code it asks about
- gitlab·reply in the thread
Replied on !322
- The retry limit is set in config/jobs.yml
- It applies to every queue except billing
Weekly merge request digest
A scheduled agent lists what merged and what is waiting for review, and posts the summary to the team.
Every Monday, summarize last week's merge requests and post them to Slack.
- gitlab·list merged and open merge requests
- code·group by project and author
- slack·post the digest to #engineering
Week 40 digest
- 27 merge requests merged across 4 projects
- 6 waiting for review for more than 2 days
Event triggers
Start a run on GitLab events
Attach any of these events to a workflow and filter on the fields that matter. Manual, schedule, and signed webhook triggers work too.
| Event | What it means |
|---|---|
merge_request.opened | A merge request is opened. Filter by project, target branch, or labels. |
merge_request.merged | A merge request is merged - the moment to update docs, changelogs, or tickets. |
issue.opened | A new issue is opened. Filter by project or labels to triage it. |
pipeline.updated | A pipeline's status changes. Filter on the failed status and a branch to watch only main or release branches. |
comment.created | Someone comments on a merge request, issue, commit, or snippet. |
Works with
GitLab works with the rest of your stack
One agent, one run, several services. It reads from one tool and writes to the next in the same sandbox.
FAQ
Questions, answered
Put an agent on GitLab.
Connect it once and describe the task in chat. Then reuse the prompt as a workflow on a schedule or a webhook.