Repository navigation
Releases: zsoftly/ztigit
Release list
0.0.5
ztigit v0.0.5 Release Notes
What's New
Mirror multiple groups
Mirror more than one GitLab group / GitHub org in a single command:
# Comma-separated
ztigit mirror group1,group2,group3 -p gitlab
# Space-separated
ztigit mirror --groups "group1 group2 group3" -p gitlabWhen mirroring multiple groups, the default directory becomes provider-specific:
- GitLab:
$HOME/gitlab-repos/... - GitHub:
$HOME/github-repos/...
Preserve GitLab subgroup nesting
GitLab subgroup paths are now preserved in the local directory structure. For example,
my-group/my-subgroup/my-project mirrors into BaseDir/my-group/my-subgroup/my-project.
Better path validation + clearer errors
Mirroring now validates repository paths before cloning/updating and surfaces clearer errors for
invalid inputs (including guarding against overly long paths on Windows).
More mirror tests
Added a comprehensive test suite around mirror behavior to reduce regressions.
Installation
Quick Install (Recommended)
Windows:
irm https://github.com/zsoftly/ztigit/releases/latest/download/install.ps1 | iexmacOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/ztigit/releases/latest/download/install.sh | bashManual Install
See docs/installation.md for manual installation options.
Platforms
| OS | Architecture | Binary |
|---|---|---|
| Linux | amd64 | ztigit-linux-amd64 |
| Linux | arm64 | ztigit-linux-arm64 |
| macOS | amd64 | ztigit-darwin-amd64 |
| macOS | arm64 | ztigit-darwin-arm64 |
| Windows | amd64 | ztigit-windows-amd64.exe |
| Windows | arm64 | ztigit-windows-arm64.exe |
Full Changelog: 0.0.4...0.0.5
0.0.4
ztigit v0.0.4 Release Notes
What's New
Git Installation Check
ztigit now validates that git is installed before running the mirror command. If git is not found, it provides platform-specific installation instructions:
Windows:
✗ Git is not installed
Install git using one of:
• winget (recommended):
winget install Git.Git
• Chocolatey:
choco install git
• Manual download:
https://git-scm.com/download/win
After installing, restart your terminal.
macOS:
✗ Git is not installed
Install git using one of:
• Xcode Command Line Tools (recommended):
xcode-select --install
• Homebrew:
brew install git
• Manual download:
https://git-scm.com/download/mac
Linux:
✗ Git is not installed
Install git using your package manager:
• Debian/Ubuntu:
sudo apt install git
• Fedora:
sudo dnf install git
• Arch:
sudo pacman -S git
• Alpine:
sudo apk add git
Installation
Quick Install (Recommended)
Windows:
irm https://github.com/zsoftly/ztigit/releases/latest/download/install.ps1 | iexmacOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/ztigit/releases/latest/download/install.sh | bashManual Install
See docs/installation.md for manual installation options.
Platforms
| OS | Architecture | Binary |
|---|---|---|
| Linux | amd64 | ztigit-linux-amd64 |
| Linux | arm64 | ztigit-linux-arm64 |
| macOS | amd64 | ztigit-darwin-amd64 |
| macOS | arm64 | ztigit-darwin-arm64 |
| Windows | amd64 | ztigit-windows-amd64.exe |
| Windows | arm64 | ztigit-windows-arm64.exe |
Full Changelog: 0.0.3...0.0.4
0.0.3
ztigit v0.0.3 Release Notes
What's New
One-Liner Installation
Install ztigit with a single command - no manual downloads or PATH configuration needed.
Windows (PowerShell):
irm https://github.com/zsoftly/ztigit/releases/latest/download/install.ps1 | iexmacOS, Linux, WSL:
curl -fsSL https://github.com/zsoftly/ztigit/releases/latest/download/install.sh | bashSSH Support
New --ssh flag to prefer SSH URLs over HTTPS:
ztigit mirror zsoftly --provider github --sshWindows arm64 Support
Added Windows ARM64 binary for Surface Pro X and other ARM-based Windows devices.
Features
Mirror Command
Clone/update repos from GitLab groups or GitHub orgs:
# From URL (auto-detects provider)
ztigit mirror https://github.com/zsoftly
ztigit mirror https://gitlab.com/my-group
# By org name
ztigit mirror zsoftly --provider github
ztigit mirror my-group --provider gitlab
# Custom directory
ztigit mirror zsoftly -p github --dir ./repos
# Use SSH instead of HTTPS
ztigit mirror zsoftly -p github --ssh
# Include older repos (default skips repos >12 months old)
ztigit mirror zsoftly -p github --max-age 24 # 24 months
ztigit mirror zsoftly -p github --max-age 0 # no limitPreflight Credential Validation
Checks git credentials before starting:
- Tests HTTPS/SSH access with
git ls-remote - Fails fast with actionable fix suggestions
- Bypass with
--skip-preflightif needed
Environment Protection
# List environments
ztigit environments --project "org/repo" --provider github
# Protect environments matching pattern
ztigit protect --project "org/repo" --provider github --pattern "prod"
ztigit protect --project "org/repo" --provider gitlab --pattern "staging"
# Dry run
ztigit protect --project "org/repo" -p github --pattern "prod" --dry-runAuthentication
# Save token to keychain (reads from env var or prompts)
export GITHUB_TOKEN=ghp_xxxx
ztigit auth login -p github
# Or pipe token
echo $GITHUB_TOKEN | ztigit auth login -p github
# View config
ztigit configSecurity
- Keychain storage: Tokens stored in system keychain (macOS Keychain, Linux libsecret, Windows Credential Manager)
- No CLI token flag: Tokens read from env vars or stdin only (prevents shell history exposure)
- HTTPS enforcement: Rejects HTTP URLs when token is present
- Secure permissions: Config directory 0700, config file 0600
Platforms
| OS | Architecture | Binary |
|---|---|---|
| Linux | amd64 | ztigit-linux-amd64 |
| Linux | arm64 | ztigit-linux-arm64 |
| macOS | amd64 | ztigit-darwin-amd64 |
| macOS | arm64 | ztigit-darwin-arm64 |
| Windows | amd64 | ztigit-windows-amd64.exe |
| Windows | arm64 | ztigit-windows-arm64.exe |
Installation
Quick Install (Recommended)
Windows:
irm https://github.com/zsoftly/ztigit/releases/latest/download/install.ps1 | iexmacOS/Linux/WSL:
curl -fsSL https://github.com/zsoftly/ztigit/releases/latest/download/install.sh | bashManual Install
See docs/installation.md for manual installation options.
Full Changelog: 0.0.2...0.0.3
0.0.2
ztigit 0.0.1 Release Notes
Release Date: December 18, 2025
Overview
ztigit is a cross-platform CLI for GitLab and GitHub. Mirror repositories, protect environments,
manage authentication - with security best practices built in.
Features
Mirror Command
Clone/update repos from GitLab groups or GitHub orgs/users:
- Auto-detect provider from URL:
ztigit mirror https://github.com/zsoftly - Default clone location:
$HOME/<org>/ - HTTPS-first, SSH-fallback for git operations
- Skip stale repos:
--max-age 12(default, 0 = no limit) - Parallel processing (default: 4, configurable)
- Colored output with repo sizes
- GitLab: Groups including subgroups
- GitHub: Organizations and user accounts
Preflight Credential Validation
Checks git credentials before starting clone operations:
- Tests HTTPS/SSH access with
git ls-remote - Fails fast with actionable fix suggestions
- Bypass with
--skip-preflightif needed
Other Commands
- protect: Protect deployment environments by pattern
- environments: List project environments with protection status
- auth login: Configure authentication tokens (env vars or stdin)
- config: Display current configuration
Security
- Keychain storage: Tokens stored in system keychain (macOS Keychain, Linux secret-service,
Windows Credential Manager) - No CLI token flag: Tokens read from env vars or stdin only (prevents shell history exposure)
- HTTPS enforcement: Rejects HTTP URLs when token is present
- Secure permissions: Config directory 0700, config file 0600
Platforms
| OS | Architecture |
|---|---|
| Linux | amd64, arm64 |
| macOS | amd64, arm64 |
| Windows | amd64 |
Installation
# Linux (amd64)
curl -L https://github.com/zsoftly/ztigit/releases/download/0.0.1/ztigit-linux-amd64 -o ztigit
chmod +x ztigit && sudo mv ztigit /usr/local/bin/
# macOS (Apple Silicon)
curl -L https://github.com/zsoftly/ztigit/releases/download/0.0.1/ztigit-darwin-arm64 -o ztigit
chmod +x ztigit && sudo mv ztigit /usr/local/bin/
# macOS (Intel)
curl -L https://github.com/zsoftly/ztigit/releases/download/0.0.1/ztigit-darwin-amd64 -o ztigit
chmod +x ztigit && sudo mv ztigit /usr/local/bin/Quick Start
# Set token (env var)
export GITHUB_TOKEN=ghp_xxxx
# Mirror all repos from an org
ztigit mirror https://github.com/zsoftly
# Or save token to keychain
ztigit auth login -p githubFull Changelog: https://github.com/zsoftly/ztigit/commits/0.0.1
0.0.1
ztigit 0.0.1 Release Notes
Release Date: December 18, 2025
Overview
ztigit is a cross-platform CLI for GitLab and GitHub. Mirror repositories, protect environments,
manage authentication - with security best practices built in.
Features
Mirror Command
Clone/update repos from GitLab groups or GitHub orgs/users:
- Auto-detect provider from URL:
ztigit mirror https://github.com/zsoftly - Default clone location:
$HOME/<org>/ - HTTPS-first, SSH-fallback for git operations
- Skip stale repos:
--max-age 12(default, 0 = no limit) - Parallel processing (default: 4, configurable)
- Colored output with repo sizes
- GitLab: Groups including subgroups
- GitHub: Organizations and user accounts
Preflight Credential Validation
Checks git credentials before starting clone operations:
- Tests HTTPS/SSH access with
git ls-remote - Fails fast with actionable fix suggestions
- Bypass with
--skip-preflightif needed
Other Commands
- protect: Protect deployment environments by pattern
- environments: List project environments with protection status
- auth login: Configure authentication tokens (env vars or stdin)
- config: Display current configuration
Security
- Keychain storage: Tokens stored in system keychain (macOS Keychain, Linux secret-service,
Windows Credential Manager) - No CLI token flag: Tokens read from env vars or stdin only (prevents shell history exposure)
- HTTPS enforcement: Rejects HTTP URLs when token is present
- Secure permissions: Config directory 0700, config file 0600
Platforms
| OS | Architecture |
|---|---|
| Linux | amd64, arm64 |
| macOS | amd64, arm64 |
| Windows | amd64 |
Installation
# Linux (amd64)
curl -L https://github.com/zsoftly/ztigit/releases/download/0.0.1/ztigit-linux-amd64 -o ztigit
chmod +x ztigit && sudo mv ztigit /usr/local/bin/
# macOS (Apple Silicon)
curl -L https://github.com/zsoftly/ztigit/releases/download/0.0.1/ztigit-darwin-arm64 -o ztigit
chmod +x ztigit && sudo mv ztigit /usr/local/bin/
# macOS (Intel)
curl -L https://github.com/zsoftly/ztigit/releases/download/0.0.1/ztigit-darwin-amd64 -o ztigit
chmod +x ztigit && sudo mv ztigit /usr/local/bin/Quick Start
# Set token (env var)
export GITHUB_TOKEN=ghp_xxxx
# Mirror all repos from an org
ztigit mirror https://github.com/zsoftly
# Or save token to keychain
ztigit auth login -p githubFull Changelog: https://github.com/zsoftly/ztigit/commits/0.0.1