CLI examples#
See also
For a complete list of objects and actions available, see CLI reference (gitlab command).
Projects#
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
Users#
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
Packages#
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
Issues#
Get a list of issues for this project:
$ gitlab project-issue list --project-id 2
Snippets#
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"
Commits#
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"
Artifacts#
Download the artifacts zip archive of a job:
$ gitlab project-job artifacts --id 10 --project-id 1 > artifacts.zip
Other#
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