Metadata-Version: 2.4
Name: cal-gitlab-mirror
Version: 0.3.0
Summary: A tool to mirror GitLab repositories between two GitLab instances
Project-URL: Repository, https://gitlab.com/cyberassessmentlabs/public/tools/cal-gitlab-mirror
Project-URL: Documentation, https://cyberassessmentlabs.gitlab.io/public/docs/cal-gitlab-mirror/latest
Project-URL: Issues, https://gitlab.com/cyberassessmentlabs/public/tools/cal-gitlab-mirror/-/issues
Author: Cyber Assessment Labs
License-Expression: MIT
License-File: LICENSE
Keywords: backup,git,gitlab,mirror,repository
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Version Control :: Git
Classifier: Topic :: System :: Archiving :: Mirroring
Classifier: Typing :: Typed
Requires-Python: >=3.14
Description-Content-Type: text/markdown

# cal-gitlab-mirror

A tool to mirror GitLab repositories between two GitLab instances.

## Installation

```bash
pip install cal-gitlab-mirror
```

Or run directly with uv:

```bash
uvx cal-gitlab-mirror --help
```

## Quick Start

```bash
# Mirror from source GitLab
cal-gitlab-mirror pull \
  --source-url https://gitlab.com \
  --source-token $SOURCE_TOKEN \
  --source-group myorg \
  --output-dir ./mirror

# Push to destination GitLab
cal-gitlab-mirror push \
  --dest-url https://gitlab.internal.com \
  --dest-token $DEST_TOKEN \
  --dest-group mirror/myorg \
  --input-dir ./mirror
```

## Documentation

See the [full documentation](https://cyberassessmentlabs.gitlab.io/public/docs/cal-gitlab-mirror/latest/) for detailed usage and configuration options.

## Development

```bash
# Set up development environment
make dev

# Run linting and type checking
make check

# Auto-format code
make format

# Build wheel and docs
make build
```

## Publishing

Publishing requires `cal-publish-python` configuration. See the [cal-publish-python documentation](https://cyberassessmentlabs.gitlab.io/public/docs/cal-publish-python/latest/) for setup.

```bash
# Build first
make build

# Publish wheel to PyPI and docs to GitLab Pages
make publish
```

## Licence

MIT License — Copyright 2026 Cyber Assessment Labs
