ClawSkills logoClawSkills

Gitlab

Interact with GitLab using the `glab` CLI. Use when Claude needs to work with GitLab merge requests, CI/CD pipelines, issues, releases, or make API requests. Su

Introduction

# GitLab Skill

Use 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.

## Merge Requests

List open merge requests:

```bash glab mr list --repo owner/repo ```

View MR details:

```bash glab mr view 55 --repo owner/repo ```

Create an MR from current branch:

```bash glab mr create --fill --target-branch main ```

Approve, merge, or check out:

```bash glab mr approve 55 glab mr merge 55 glab mr checkout 55 ```

View MR diff:

```bash glab mr diff 55 ```

## CI/CD Pipelines

Check pipeline status for current branch:

```bash glab ci status ```

View pipeline interactively (navigate jobs, view logs):

```bash glab ci view ```

List recent pipelines:

```bash glab ci list --repo owner/repo ```

Trace job logs in real time:

```bash glab ci trace glab ci trace 224356863 # specific job ID glab ci trace lint # by job name ```

Retry a failed pipeline:

```bash glab ci retry ```

Validate `.gitlab-ci.yml`:

```bash glab ci lint ```

## Issues

List and view issues:

```bash glab issue list --repo owner/repo glab issue view 42 ```

Create an issue:

```bash glab issue create --title "Bug report" --label bug ```

Add a comment:

```bash glab issue note 42 -m "This is fixed in !55" ```

## API for Advanced Queries

Use `glab api` for endpoints not covered by subcommands. Supports REST and GraphQL.

Get project releases:

```bash glab api projects/:fullpath/releases ```

Get MR with specific fields (pipe to jq):

```bash glab api projects/owner/repo/merge_requests/55 | jq '.title, .state, .author.username' ```

Paginate through all issues:

```bash glab api issues --paginate ```

GraphQL query:

```bash glab api graphql -f query=' query { currentUser { username } } ' ```

## JSON Output

Pipe to `jq` for filtering:

```bash glab mr list --repo owner/repo | jq -r '.[] | "\(.iid): \(.title)"' ```

## Variables and Releases

Manage CI/CD variables:

```bash glab variable list glab variable set MY_VAR "value" glab variable get MY_VAR ```

Create a release:

```bash glab release create v1.0.0 --notes "Release notes here" ```

## Key Differences from GitHub CLI

| 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` |

More Products