Skip to main content

Download and upload release assets for GitLab projects and groups

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

cal-gitlab-releases

Download and upload release assets for GitLab projects and groups.

Installation

pip install cal-gitlab-releases

Usage

# Download release assets from a group
cal-gitlab-releases download -u https://gitlab.com -p myorg/public -o ./releases

# Upload release assets to a target GitLab
cal-gitlab-releases upload -u https://gitlab.example.com -p target-group -i ./releases -t TOKEN

Commands

download

Download release assets from GitLab projects or groups. Supports version filtering, manifest-based incremental downloads, and parallel threads.

Use --flat to download all files into a single directory (useful for manual inspection). Note that flat output cannot be used with the upload command, which requires the project/tag directory structure.

Size limits

Use --max-file-size (-S) to skip individual files larger than a threshold, and --max-total-size (-T) to cap the total bytes downloaded in a single session. Both accept human-readable suffixes: K, M, G, T (e.g., 500M, 10G). Files skipped due to size limits are recorded in the manifest so they are not re-attempted on subsequent runs. Files skipped by the total size budget are not recorded, so the next run will pick them up.

upload

Upload release assets to GitLab. Reads the same directory structure produced by download, creates releases if they don't exist, and attaches asset files as release links.

Configuration

Settings can be provided via CLI args, environment variables, or a config file at ~/.config/cal-gitlab-releases/config.json:

{
    "gitlab_url": "https://gitlab.example.com",
    "token": "glpat-xxxxxxxxxxxx",
    "base_group": "myorg",
    "output": "./downloads",
    "version_filter": "release",
    "parallel": 32,
    "max_file_size": "500M",
    "max_total_size": "10G",
    "project_exclude": ["private/tools/harproxy"]
}

Licence

MIT License — Copyright (c) 2026 Cyber Assessment Labs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cal_gitlab_releases-1.1.0b6-py3-none-any.whl (43.4 kB view details)

Uploaded Python 3

File details

Details for the file cal_gitlab_releases-1.1.0b6-py3-none-any.whl.

File metadata

File hashes

Hashes for cal_gitlab_releases-1.1.0b6-py3-none-any.whl
Algorithm Hash digest
SHA256 aeb1b34fcaf6993cdec2f6e7da2232a4e7ef665b326d8efa12334fc3d1c67f41
MD5 a0df92dcf31ba0da6d8433437a621f3d
BLAKE2b-256 a0cf5959a9e1a9f31c731946c934afb72c867320be755f28eb65e06347ebafc4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page