Skip to main content

BunkerSync simplifies Git repository syncing.

Project description

BunkerSync

                                  *-+-+-+-+-+-+-+-+-+-+-+*                  +++++++++++++++++            
                                  |         .--.         |                  +               +          
                                  |        / {} \        |                  +    External   +          
                                  |_______/  /\  \_______|----------------+ +   REPOSITORY  +
                                  |#######| |  | |#######|                  +               +
                                  |#######`-'++'-´#######|                  +++++++++++++++++
                                  *-+-+-+BunkerSync+-+-+-*
                                            |
                                            |
                                            |
                                            |
                                            +   
                                     +++++++++++++++++
                                     +               +
                                     +    Internal   +
                                     +   REPOSITORY  +
                                     +               +
                                     +++++++++++++++++

BunkerSync is a Python script that simplifies the process of syncing Git repositories. With BunkerSync, you can easily sync an internal repository with an external one and sync new branches from the external repository to the internal repository with support for filtering. BunkerSync is customizable and easy to use, making it an ideal tool for developers who need to keep their repositories in sync.

Use cases [TO-UPDATE]

  1. Publish an internal branch into external repository with option to filter.
  2. Fetch external branches whose names startes with given prefix into our internal repository
  3. Fetch a specific external branch into our internal repository

Prerequisites

  1. Python >= 3.11
  2. installed git

Getting Started

  1. Use Case 1:

    BunkerSync -p -i=<internal_repo_url> -e=<external_repo_url> -b=<internal_branch_to_publish> -fm=<path_of_filter_map>

  2. Use Case 2:

    BunkerSync -f -i=<internal_repo_url> -e=<external_repo_url> -@= -bb=<internal_base_of_fetched_branch>

  3. Use Case 3:

    BunkerSync -f -i=<internal_repo_url> -e=<external_repo_url> -eb=<external_branch_to_fetch> -ib=<internal_name_for_fetched_branch> -bb=<base_of_internal_fetched_branch>

  • -bb is optional, default base would be 'master' branch.
  • -fm is optional, otherwise no filtering would be executed.
  • In case you are not sure if you understood the args, see CLI Args below.

Command-line Arguments

-p,      --publish         Option to publish a given branch from internal repository to external repository.
-f,       --fetch         Option to fetch all new branches with a given prefix from external repository to the internal repository.
-i,       --internal         Internal repository url.
-e,      --external        External repository url.
-b,      --branch         (Required when -p is on) Name of internal branch to be published to external repository.
-@,     --prefix         (Required when -f is on) Prefix of external branches to be pulled to internal repository.
-fm,     --filter_map      Path of the filtering map that includes files or folders names to be filtered.
-ib,     --internal_branch      (Required when -f is on)The name of the branch in the internal repository.
-eb,     --external_branch      (Required when -f is on) The name of the branch in the external repository.
-bb,     --branch_base      The base branch name to be the base of the new fetched branch.

Notes [TO-UPDATE]

  1. Be aware that the tool may ask for authentication credentials with git, the authentication is processed directly against git.
  2. The merge is processed in overwrite manner.

Contributing

If you have any issues or suggestions for BunkerSync, feel free to open an issue or submit a pull request on the GitHub repository.

License

BunkerSync is released under the Apache License. See the LICENSE file for details.

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

BunkerSync-0.0.10.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

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

BunkerSync-0.0.10-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file BunkerSync-0.0.10.tar.gz.

File metadata

  • Download URL: BunkerSync-0.0.10.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for BunkerSync-0.0.10.tar.gz
Algorithm Hash digest
SHA256 524c9c2a094a86685d26697a573b0015d22c1251f2cc2602ad7450b5ff7ecdb5
MD5 1aef24c0cf6c72cbc156fddba3bc459c
BLAKE2b-256 5d9432939aa9762e0a18afb5b5cc8ce1fb3130042a82be2a8c1d1f0edf66512c

See more details on using hashes here.

File details

Details for the file BunkerSync-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: BunkerSync-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for BunkerSync-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 332b33b599a882914f4aadebf64af76740260586f8f95777a37d5fe051cc15bb
MD5 87066fde4e6882d248952fb0c9b050e0
BLAKE2b-256 72e160c178697ebed60b11988fdd3a0ae1b6a24bb1708f62415a28b9da2959d9

See more details on using hashes here.

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