Skip to main content

Gitlab dumper

A simple CLI tool for creating a dump of all projects in your Gitlab instance.

Supports dump as raw repo and archives.

Preflight

Go to https://<YOUR_GITLAB_ENDPOINT>/-/profile/personal_access_tokens and create personal token with permissions:

  • api
  • read_api
  • read_repository

If you want to see all repositories, it may make sense to grant administrator permissions for the access token.

Configuration

Create .env file and put credentials:

LOG_LEVEL="info"
GITLAB_URL="https://<YOUR_GITLAB_ENDPOINT>"
GITLAB_PERSONAL_TOKEN="xxxxxx"  # also, GITLAB_OAUTH_TOKEN supports

Or set environment variables directly:

export LOG_LEVEL="info"
export GITLAB_URL="https://<YOUR_GITLAB_ENDPOINT>"
export GITLAB_PERSONAL_TOKEN="xxxxxx"

Requirements:

  • Python >= 3.10
  • The git command line tool must be installed on your PC
  • The utility clones over SSH, so make sure that your public key is added to the GitLab profile, read the doc
    • If you are having problems with the SSH key, just run the dump command with the --as-archive flag, it does not require SSH.

Install

Using pip:

python3 -m venv venv
source venv/bin/activate
pip install gitlab-dumper

gitlab-dumper --help

Installing from source:

git clone https://github.com/akimrx/gitlab-dumper  --recursive
cd gitlab-dumper
python3 -m venv venv
source venv/bin/activate
make install  # or: python3 setup.py install

gitlab-dumper --help

Usage

Commands:
  groups    Operations with Gitlab groups.
  projects  Operations with Gitlab projects.
  tree      Show groups, subgroups and projects as tree.

Groups commands:
  list      Show available Gitlab groups.
  projects  List projects in group or subgroup.

Projects commands:
  dump  Download, clone or re-pull all available projects.
  list  Show available Gitlab projects.

Dump

Before really dump use --dry-run flag, for example:

gitlab-dumper projects dump --namespaces foo,bar --no-personal --dry-run

For full dump just use gitlab-dumper projects dump

Available optional flags:

  --dumps-dir TEXT   Directory for dumps (default: ./dumps).
  --delay INTEGER    Delay between clones in seconds (default 0).
  --skip-empty       Ignore empty projects.
  --no-personal      Ignore personal user projects.
  --as-archive       Download projects as tar.gz archive instead clone.
  --dry-run          Safe simulate dump without download/clone.
  --namespaces TEXT  Comma-separated namespaces to operate.
  --exclude TEXT     Comma-separated projects (slug) to exclude.
  --help             Show this message and exit.

Development run

python3 -m 'src.main' --help

Metadata

Release files for gitlab-dumper 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gitlab-dumper 0.1.1
File Size Uploaded
gitlab-dumper-0.1.1.tar.gz 10.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gitlab-dumper 0.1.1
File Interpreter ABI Platform
gitlab_dumper-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 21.9 kB

Release files / gitlab-dumper-0.1.1.tar.gz

Download URL gitlab-dumper-0.1.1.tar.gz
Size 10.0 kB
Tags Source
SHA-256 checksum
How to use checksums
bc58fd0e0b0a85a4f1aa2f71444ae0053f0aa4bee98ef9170778da23457eb391
BLAKE2b-256 checksum
How to use checksums
741a40925d5b895707129389403d0274c876eb19802b6cf2c24aceb823f3bf69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.13

Release files / gitlab_dumper-0.1.1-py3-none-any.whl

Download URL gitlab_dumper-0.1.1-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
302d6d3f642188f008900c20819e998b53fd33d84b705c8f28d6d333b1e3ff0d
BLAKE2b-256 checksum
How to use checksums
79fc46ef6f3141aaa5a24e74745042c9311dcc4c8f0a0353b94c59eddd1c5720
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.13

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page