Skip to main content

XGIC GitLab CLI

License PyPI Python Release CI

GitLab product commands for the modular XGIC CLI—ops under xgic gitlab ….

Namespace: xgic.cli.gitlab · Console group: xgic gitlab … · Brand: XGIC CLI only (ADR-0005)

Standards hub: xgic/ai · README standards


Vision

Self-managed GitLab operators need a stable, public-safe command surface for versioned ops— not a grab bag of one-off scripts. This module owns the GitLab product namespace under xgic. The GraphQL client library lives in gitlab-graphql; the Compose template and orchestration image producer live in gitlab and gitlab-dev.

One brand (xgic), clear ownership, and no private hosts or tracker IDs in the package.


Why this module exists

Benefit Detail
Domain clarity Nested under xgic gitlab—no clash with core or Payload commands
Composable stack Depends on xgic-cli; optional GraphQL extra when automation lands
Public-safe by design Endpoints via env/flags—never hard-coded private inventory
AI + human parity Same command map in README and AGENTS.md
Open-source rigor Apache-2.0, Python 3.14+, RC → TestPyPI → PyPI

Ecosystem

Package / repo Role
xgic/cli Thin core framework (xgic)
xgic/gitlab-graphql GraphQL client library
This repo GitLab product module (xgic.cli.gitlab)
xgic/gitlab-dev Orchestration image producer (ghcr.io/xgic/xgic-gitlab)
xgic/gitlab End-user Docker Compose template

Architecture: ADR-0001 · ADR-0005.


Quick start

Development (editable) — current primary path

uv pip install -e ../cli
uv pip install -e ".[dev]"
xgic gitlab --help
xgic gitlab info

Optional GraphQL extra (when GraphQL-backed commands ship):

uv pip install -e ".[graphql]"

Install (PyPI)

xgic-gitlab-cli 0.1.1 is on PyPI. Further cuts follow the hub python-package-release.md path (RC → TestPyPI → PyPI).

uv pip install "xgic-gitlab-cli"
xgic gitlab --help

Requirements

  • Python 3.14+
  • xgic-cli ≥ 0.2.1
  • Docker / Docker Compose for stack ops (health / backup / restore)

Console commands

All product commands nest under xgic gitlab:

Command Purpose
xgic gitlab info Module version and status (--json supported)
xgic gitlab health Compose service checks + optional HTTP /-/health
xgic gitlab backup gitlab-backup create, then one .tar.zst pair and a .sha256 sidecar
xgic gitlab restore Restore the latest verified pair, or --archive (--yes required)

Configuration (no private host defaults)

Setting Flag Environment
Compose file --compose-file XGIC_GITLAB_COMPOSE_FILE (default docker-compose.yml)
Project name --project XGIC_GITLAB_COMPOSE_PROJECT (default xgic-gitlab)
GitLab EE service --gitlab-service XGIC_GITLAB_EE_SERVICE (default gitlab-ee)
Orchestration service --xgic-service XGIC_GITLAB_ORCH_SERVICE (default xgic-gitlab)
Backup dir hint --backup-dir XGIC_GITLAB_BACKUP_DIR
GitLab URL --url GITLAB_URL (no default)
Token --token GITLAB_TOKEN (never logged)

Shared: --dry-run, --json.

Examples

# From a checked-out xgic/gitlab template directory
export GITLAB_URL=http://localhost:8929
xgic gitlab health --json
xgic gitlab backup \
  --secrets-file ./gitlab-secrets.json \
  --config-file ./gitlab.rb \
  --dry-run
xgic gitlab restore --dry-run
xgic gitlab restore --archive gitlab.tar.zst --dry-run
# after confirmation; destinations are optional and are not written during backup:
xgic gitlab restore \
  --archive gitlab.tar.zst \
  --secrets-dest ./restore/gitlab-secrets.json \
  --config-dest ./restore/gitlab.rb \
  --yes

xgic gitlab backup reads the live secrets and config files and does not write them back. The archive contains the GitLab backup tar, those two files, and backup-manifest.json. Registry, LFS, and packages are required unless --allow-missing names a component GitLab omitted. The manifest is a Pydantic model. Its restore_validation list records REST and GraphQL checks for a later validator. Restore compares a recorded product release with the running service before it extracts the archive. An archive with no recorded release is not a mismatch.

See docs/backup.md and docs/configuration.md.


Status

0.1.4. Restore compares a recorded product release with the running service before it extracts the archive. An image build suffix is the same release. TestPyPI 0.1.4rc1 passed smoke. PyPI 0.1.3 does not perform that comparison.


AI agent guidance

  • Use xgic gitlab … for product ops; do not hardcode private GitLab hostnames in public artifacts or committed examples.
  • Prefer fictional placeholders (https://gitlab.example.com) in docs and tests.
  • Destructive restore always needs --yes; start with --dry-run.
  • Follow hub public-safe rules before any public GitHub write.

Public safety

This package is public-safe only. Do not hardcode private GitLab hosts, internal inventory, or private tracker IDs. Operators configure endpoints via environment / flags.


Publishing

Follow python-package-release.md (publish after xgic-cli for stack releases). Tags: vX.Y.ZrcN → TestPyPI; vX.Y.Z → PyPI.


License

Apache License 2.0. See LICENSE and NOTICE.
Copyright form: Copyright 2026 XGIC.

Metadata

Release files for xgic-gitlab-cli 0.1.4

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

Source distribution (sdist)

Source distribution for xgic-gitlab-cli 0.1.4
File Size Uploaded
xgic_gitlab_cli-0.1.4.tar.gz 25.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xgic-gitlab-cli 0.1.4
File Interpreter ABI Platform
xgic_gitlab_cli-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 59.1 kB

Release files / xgic_gitlab_cli-0.1.4.tar.gz

Download URL xgic_gitlab_cli-0.1.4.tar.gz
Size 25.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b21b0ea5189f8a12f5052c2bcc5ddaa1762c823f80dc23ae288e20e641a695e2
BLAKE2b-256 checksum
How to use checksums
00df0993197183b4ee23d362b61b49b62365ab71936ee91e99c4d3aadd823756
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release files / xgic_gitlab_cli-0.1.4-py3-none-any.whl

Download URL xgic_gitlab_cli-0.1.4-py3-none-any.whl
Size 33.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f9863c31e2ef8a31108fd98da990b1eb74c0c592a997958f3a96fc27323294e
BLAKE2b-256 checksum
How to use checksums
e6feafdf96cc6c3d0c9c4af73fd741a74724835255b3cca7761bcbdcc51aee50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.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