CLI examples

See also

For a complete list of objects and actions available, see CLI reference (gitlab command).


List the projects (paginated):

$ gitlab project list

List all the projects:

$ gitlab project list --all

List all projects of a group:

$ gitlab group-project list --all --group-id 1

List all projects of a group and its subgroups:

$ gitlab group-project list --all --include-subgroups true --group-id 1

Limit to 5 items per request, display the 1st page only

$ gitlab project list --page 1 --per-page 5

Get a specific project (id 2):

$ gitlab project get --id 2


Get a specific user by id:

$ gitlab user get --id 3

Deploy tokens

Create a deploy token for a project:

$ gitlab -v project-deploy-token create --project-id 2 \
     --name bar --username root --expires-at "2021-09-09" --scopes "read_repository"

List deploy tokens for a group:

$ gitlab -v group-deploy-token list --group-id 3


List packages for a project:

$ gitlab -v project-package list --project-id 3

List packages for a group:

$ gitlab -v group-package list --group-id 3

Get a specific project package by id:

$ gitlab -v project-package get --id 1 --project-id 3

Delete a specific project package by id:

$ gitlab -v project-package delete --id 1 --project-id 3

Upload a generic package to a project:

$ gitlab generic-package upload --project-id 1 --package-name hello-world \
     --package-version v1.0.0 --file-name hello.tar.gz --path /path/to/hello.tar.gz

Download a project’s generic package:

$ gitlab generic-package download --project-id 1 --package-name hello-world \
     --package-version v1.0.0 --file-name hello.tar.gz > /path/to/hello.tar.gz


Get a list of issues for this project:

$ gitlab project-issue list --project-id 2


Delete a snippet (id 3):

$ gitlab project-snippet delete --id 3 --project-id 2

Update a snippet:

$ gitlab project-snippet update --id 4 --project-id 2 \
    --code "My New Code"

Create a snippet:

$ gitlab project-snippet create --project-id 2
Impossible to create object (Missing attribute(s): title, file-name, code)
$ # oops, let's add the attributes:
$ gitlab project-snippet create --project-id 2 --title "the title" \
    --file-name "the name" --code "the code"


Get a specific project commit by its SHA id:

$ gitlab project-commit get --project-id 2 --id a43290c

Get the signature (e.g. GPG or x509) of a signed commit:

$ gitlab project-commit signature --project-id 2 --id a43290c

Define the status of a commit (as would be done from a CI tool for example):

$ gitlab project-commit-status create --project-id 2 \
    --commit-id a43290c --state success --name ci/jenkins \
    --target-url http://server/build/123 \
    --description "Jenkins build succeeded"


Download the artifacts zip archive of a job:

$ gitlab project-job artifacts --id 10 --project-id 1 >


Use sudo to act as another user (admin only):

$ gitlab project create --name user_project1 --sudo username

List values are comma-separated:

$ gitlab issue list --labels foo,bar