Skip to main content

Bulk Git repository management toolkit.

Project description

⫷⫸

𝔾𝚒𝚝𝕂𝚊𝚝 ⫷⫸

CI PyPI codecov GitHub

𝔾𝚒𝚝𝕂𝚊𝚝 ⫷⫸ (GitKat) is a Python toolkit for managing Git repositories in bulk. It ships a single CLI, gk, that mirrors the legacy shell scripts while adding a packaged, testable workflow.

Install

Using uv:

uv venv
uv pip install -e .

Using pip:

python -m venv .venv
. .venv/bin/activate
pip install -e .

Quick start

gk check "Example Name"
gk report .
gk push
gk rewrite -m olddomain.com:newdomain.com --ignore-case --preserve-case
gk github-emails --token YOUR_GITHUB_TOKEN

Commands

  • gk check <name>: search author and committer names across repos in the current directory.
  • gk report [path]: list unique author emails for each repo under a path.
  • gk push: force-push the current branch of each repo in the current directory.
  • gk rewrite: rewrite identity metadata and/or blob contents using git-filter-repo.
  • gk github-emails --token <token>: find contribution emails across GitHub repos you can access.

Rewrite notes

gk rewrite preserves the existing behavior of rewrite.sh, including case-aware blob mapping and commit metadata rewrites. It runs git filter-repo under the hood, so you need Git and git-filter-repo installed.

Examples:

# Identity rewrite
gk rewrite -n "New Name" -e "new@example.test" -o "old@example.test"

# Blob rewrite with preserved casing and case-insensitive matching
gk rewrite -m foo:bar --ignore-case --preserve-case

# Exclude files from blob rewrites
gk rewrite -m token:REDACTED -x "data/*.csv" -x "vendor/*"

# Rename file paths using the same mappings
gk rewrite -m oldname:newname --rename-files

Development

uv pip install -e .
uv pip install -e . --group dev
uv run pytest
uv run mkdocs serve

Coverage (latest local run):

uv run pytest --cov=gitkat --cov-report=term-missing

License

MIT License. See LICENSE.

Project details


Download files

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

Source Distribution

gitkat-0.4.0.tar.gz (85.4 kB view details)

Uploaded Source

Built Distribution

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

gitkat-0.4.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file gitkat-0.4.0.tar.gz.

File metadata

  • Download URL: gitkat-0.4.0.tar.gz
  • Upload date:
  • Size: 85.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitkat-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f9e3da0f0c5c66c6c3f36d9a6432cc07a25baaf3d695939c43e235f1366f9e7d
MD5 d336433db3489df6907e2f44ad986b42
BLAKE2b-256 87859e407ab549a498da9f4a8d49a120eec87a75fa653e1cac226bc15e4043a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitkat-0.4.0.tar.gz:

Publisher: release.yml on Aureuma/GitKat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gitkat-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: gitkat-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitkat-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9d9cc5323903c6e2cdd46a70d43f61f1541b40c0c8192497b8d5aa4d7d5f9c1
MD5 d4acd91710428352351393d04a5bf79d
BLAKE2b-256 5d186956f46cfa76d5c12d470275a13b0f4b3e8143dda1779cba614de8916ffd

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitkat-0.4.0-py3-none-any.whl:

Publisher: release.yml on Aureuma/GitKat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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