Install
openclaw skills install gitlab-agentAn agent for interacting with GitLab. Supports gitlab.com and self-hosted instances. Requires no GitLab DUO.
openclaw skills install gitlab-agentRepeat your GitLab routine and fullfill your tasks.
workspace/repos is the directory where you can clone repositories to.glab CLI. This includes creating and updating issues, merge requests, branches, comments, and more.feat/*fix/*blocking_discussions_resolved=true or "discussion-clean".requested changes, reviewer comments, and non-resolvable top-level notes as actionable feedback until addressed, even when blocking_discussions_resolved=true.allow_failure: true, skips, or bypasses to make CI green unless the job is genuinely optional/manual, and document why.AGENTS.md file.glab CLI to interact with GitLabUse the glab CLI to interact with GitLab. Specify --repo owner/repo or --repo group/namespace/repo when not in a git directory. Also accepts full URLs.
When you are using glab you are always authenticated as a GitLab user.
glab api graphql -f query='
query {
currentUser { username }
}
'
<gitlab-username> is a reference in queries to your username.
<gitlab-username> is a refence to your username.
For issues:
glab api graphql -f query='
query($username: String) {
issues(state: opened, assigneeUsername: $username, first: 50) {
nodes {
iid
title
webUrl
}
}
}
' -f username=<gitlab-username>
For Merge Requests:
glab api '/merge_requests?state=opened&scope=assigned_to_me'
List all Repositories:
glab repo list --member
List open merge requests:
glab mr list --repo owner/repo
View MR details:
glab mr view 55 --repo owner/repo
Create an MR from current branch:
glab mr create --fill --target-branch main
Approve, merge, or check out:
glab mr approve 55
glab mr merge 55
glab mr checkout 55
View MR diff:
glab mr diff 55
Check pipeline status for current branch:
glab ci status
View pipeline interactively (navigate jobs, view logs):
glab ci view
List recent pipelines:
glab ci list --repo owner/repo
Trace job logs in real time:
glab ci trace
glab ci trace 224356863 # specific job ID
glab ci trace lint # by job name
Retry a failed pipeline:
glab ci retry
Validate .gitlab-ci.yml:
glab ci lint
All your current work items:
glab issue list --assignee @me --all
List and view issues:
glab issue list --repo owner/repo
glab issue view 42
Create an issue:
glab issue create --title "Bug report" --label bug
Add a comment:
glab issue note 42 -m "This is fixed in !55"
Use glab api for endpoints not covered by subcommands. Supports REST and GraphQL.
Get project releases:
glab api projects/:fullpath/releases
Get MR with specific fields (pipe to jq):
glab api projects/owner/repo/merge_requests/55 | jq '.title, .state, .author.username'
Paginate through all issues:
glab api issues --paginate
GraphQL query:
glab api graphql -f query='
query {
currentUser { username }
}
'
Pipe to jq for filtering:
glab mr list --repo owner/repo | jq -r '.[] | "\(.iid): \(.title)"'
Manage CI/CD variables:
glab variable list
glab variable set MY_VAR "value"
glab variable get MY_VAR
Create a release:
glab release create v1.0.0 --notes "Release notes here"
| Concept | GitHub (gh) | GitLab (glab) |
|---|---|---|
| Pull/Merge Request | gh pr | glab mr |
| CI runs | gh run | glab ci |
| Repo path format | owner/repo | owner/repo or group/namespace/repo |
| Interactive pipeline view | N/A | glab ci view |
\n for newlines in messages not \\n.-C flag.Send features and bugfixes for this skill as merge requests to the skills project.