glab
GitLab CLI - - Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
glab
is an open source GitLab CLI tool. It brings GitLab to your terminal:
next to where you are already working with Git and your code, without
switching between windows and browser tabs.
- Work with issues.
- Work with merge requests.
- Watch running pipelines directly from your CLI.
The GitLab CLI uses commands structured like glab <command> <subcommand> [flags]
to perform many of the actions you usually do from the GitLab user interface:
# Sign in
glab auth login --stdin < token.txt
# View a list of issues
glab issue list
# Create merge request for issue 123
glab mr create 123
# Check out the branch for merge request 243
glab mr checkout 243
# Watch the pipeline in progress
glab pipeline ci view
# View, approve, and merge the merge request
glab mr view
glab mr approve
glab mr merge
Core commands
-
glab alias
: Create, list, and delete aliases. -
glab api
: Make authenticated requests to the GitLab API. -
glab auth
: Manage the authentication state of the CLI. -
glab changelog
: Interact with the changelog API. -
glab check-update
: Check for updates to the CLI. -
glab ci
: Work with GitLab CI/CD pipelines and jobs. -
glab cluster
: Manage GitLab Agents for Kubernetes and their clusters. -
glab completion
: Generate shell completion scripts. -
glab config
: Set and get CLI settings. -
glab deploy-key
: Manage deploy keys. -
glab duo
: Generate terminal commands from natural language. -
glab incident
: Work with GitLab incidents. -
glab issue
: Work with GitLab issues. -
glab iteration
: Retrieve iteration information. -
glab job
: Work with GitLab CI/CD jobs. -
glab label
: Manage labels for your project. -
glab mr
: Create, view, and manage merge requests. -
glab release
: Manage GitLab releases. -
glab repo
: Work with GitLab repositories and projects. -
glab schedule
: Work with GitLab CI/CD schedules. -
glab securefile
: Manage secure files for a project. -
glab snippet
: Create, view and manage snippets. -
glab ssh-key
: Manage SSH keys registered with your GitLab account. -
glab stack
: Create, manage, and work with stacked diffs. -
glab token
: Manage personal, project, or group tokens. -
glab user
: Interact with a GitLab user account. -
glab variable
: Manage variables for a GitLab project or group. -
glab version
: Show version information for the CLI.
GitLab Duo for the CLI
- Tier: Premium, Ultimate
- Add-on: GitLab Duo Enterprise
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
- LLM: Anthropic Claude 3 Haiku
Version history
- Changed to require GitLab Duo add-on in GitLab 17.6 and later.
- Changed to include Premium in GitLab 18.0.
The GitLab CLI includes features powered by GitLab Duo. These include:
To ask questions about git
commands while you work, type:
The glab duo ask
command can help you remember a git
command you forgot,
or provide suggestions on how to run git
commands to perform other tasks.
Install the CLI
Installation instructions are available in the glab
README
.
Authenticate with GitLab
To authenticate with your GitLab account, run glab auth login
.
glab
respects tokens set using GITLAB_TOKEN
.
glab
also integrates with the 1Password shell plugin
for secure authentication.
Examples
Run a CI/CD pipeline with variables from a file
The glab ci run
command, when run with the -f
(--variables-from-string
) flag, uses values stored
in an external file. For example, add this code to your .gitlab-ci.yml
file
to reference two variables:
stages:
- build
# $EXAMPLE_VARIABLE_1 and $EXAMPLE_VARIABLE_2 are stored in another file
build-job:
stage: build
script:
- echo $EXAMPLE_VARIABLE_1
- echo $EXAMPLE_VARIABLE_2
- echo $CI_JOB_ID
Then, create a file named variables.json
to contain those variables:
[
{
"key": "EXAMPLE_VARIABLE_1",
"value": "example value 1"
},
{
"key": "EXAMPLE_VARIABLE_2",
"value": "example value 2"
}
]
To start a CI/CD pipeline that includes the contents of variables.json
, run this command, editing
the path to the file as needed:
$ glab ci run --variables-file /tmp/variables.json`
$ echo $EXAMPLE_VARIABLE_1
example value 1
$ echo $EXAMPLE_VARIABLE_2
example value 2
$ echo $CI_JOB_ID
9811701914
Report issues
Open an issue in the gitlab-org/cli
repository
to send us feedback.
Related topics
- Install the CLI
- Documentation
- Extension source code in the
cli
project
Troubleshooting
glab completion
commands fail when using the 1Password shell plugin
The 1Password shell plugin
adds the alias glab='op plugin run -- glab'
, which can interfere with the glab completion
command. If your glab completion
commands fail, configure your shell to prevent expanding aliases
before performing completions:
-
For Zsh, edit your
~/.zshrc
file and add this line:setopt completealiases
-
For Bash, edit your
~/.bashrc
file and add this line:complete -F _functionname glab
For more information, see issue 122 for the 1Password shell plugin.