Skip to main content

Clone, pull all repos from gitlab or github and other polyrepo workflows.

Reason this release was yanked:

missing colorama

Project description

git_mirror

Keep all your git repos in sync safely. Useful for a poly-repo workflow.

Clone all your github repos and call pull on them.

Installation

pipx install git-mirror

Usage

CLI tool. Run in the directory with your pyproject.toml file.

You have forgotten to clone some repos on your secondary laptop. Run git_mirror clone-all.

You probably made changes and forgot to pull them. Run git_mirror pull-all.

You have made changes to many repos and can't remember which. Run git_mirror local-changes.

You have pushed changes to many repos and forgot if you deployed them to pypi or not. Run git_mirror build-status.

Github doesn't summarize failing builds across all repos. Run git_mirror build-status.

Your local folder has a bunch of stray folders that aren't even repos. Run git_mirror not-repo.

You care about some repos more than others, use config to focus on a subset of repos. (PENDING FEATURE)

usage: __main__.py [-h] [--user-name USER_NAME] [--target-dir TARGET_DIR] [--include-forks] [--include-private] [--config-path CONFIG_PATH]
                   {clone-all,pull-all,local-changes,not-repo,build-status,sync-config,pypi-status}

GitHub Repository Management Tool

positional arguments:
  {clone-all,pull-all,local-changes,not-repo,build-status,sync-config,pypi-status}
                        The command to execute.

options:
  -h, --help            show this help message and exit
  --user-name USER_NAME
                        The GitHub username.
  --target-dir TARGET_DIR
                        The directory where repositories will be cloned or pulled.
  --include-forks       Include forked repositories.
  --include-private     Include private repositories.
  --config-path CONFIG_PATH
                        Path to the TOML config file.

Config

Interactively setup config in pyproject.toml

git_mirror init

Manual Config

[tool.git-mirror]
user_name = "matthewdeanmartin"
target_dir = "e:/github/"
include_private = false

TODO

  • Support Gitlab
  • "sync set of files", like project boilerplate
  • interactive mode
  • Verify it works with "cli to website" tools

Clone All

Clone everything to target directory, unless it already exists

git_mirror clone-all

Pull All

Execute pull on all repos.

git_mirror pull-all

Local Changes

Show local, uncommitted, unpushed changes

git_mirror local-changes

Not repo

Show what stray folders in the target folder have accumulated that aren't even repos.

git_mirror not-repo

Build Status

What github actions are failing, passing.

git_mirror build-status

Sync Config

Copy the list of all your repos to the config file so you can mark them for ignore or tag them.

git_mirror sync-config

Prior Art

  • gita - multi-repo git tool

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

git_mirror-0.1.0.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

git_mirror-0.1.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file git_mirror-0.1.0.tar.gz.

File metadata

  • Download URL: git_mirror-0.1.0.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for git_mirror-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4eba399a5f3fef6f87dd2e31a617e81a974908bb945d14aea3647577f3f3c908
MD5 9e7f25d2151ab649999f670a6c2e10a6
BLAKE2b-256 ae729a9b8c24b1dbefea33d18463e49335056697dae4b9c63e35927de8746390

See more details on using hashes here.

File details

Details for the file git_mirror-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: git_mirror-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for git_mirror-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2e644171d5a6c667e9cd01a0e85b028a8a477f8424b8aa2570c20ab0667e2c3b
MD5 2fd1ecbf2dac224448b135f1ac4e1aaa
BLAKE2b-256 f01f319ce005f61e20f4cdeb3292bdc1550c92d6bc84fa3d8ccf13c128dece89

See more details on using hashes here.

Supported by

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