8.2 KiB
| stage | group | info | description | title |
|---|---|---|---|---|
| Create | Code Review | To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments | Use the GitLab CLI (glab) to perform common GitLab actions in your terminal. | GitLab CLI - `glab` |
{{< details >}}
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
{{< /details >}}
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
{{< details >}}
- Tier: Premium, Ultimate
- Add-on: GitLab Duo Enterprise
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
- LLM: Anthropic Claude 3 Haiku
{{< /details >}}
{{< history >}}
- Changed to require GitLab Duo add-on in GitLab 17.6 and later.
- Changed to include Premium in GitLab 18.0.
{{< /history >}}
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
cliproject
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
~/.zshrcfile and add this line:setopt completealiases -
For Bash, edit your
~/.bashrcfile and add this line:complete -F _functionname glab
For more information, see issue 122 for the 1Password shell plugin.
