Skip to main content

BunkerSync simplifies Git repository syncing. Sync internal and external repositories with branch filtering and automatic syncing. Ideal for developers who need to keep repositories in sync.

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.12.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.12-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: BunkerSync-0.0.12.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.12.tar.gz
Algorithm Hash digest
SHA256 a486eded397df11a21b3add735287227a7548c10436fb94d9bdc225e1e670b9e
MD5 766964be0b5b261e545fd24af0a1d097
BLAKE2b-256 b20538c7e730795db37a21c7d2a4e4dfdf6c9e57b682cfce17a09b1679cc6684

See more details on using hashes here.

File details

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

File metadata

  • Download URL: BunkerSync-0.0.12-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.12-py3-none-any.whl
Algorithm Hash digest
SHA256 3d7f5b486c4c477fb2e99b218cb64603259174d8d258b130423d81d975840f93
MD5 1e659e2372196609d30bc404e96934c4
BLAKE2b-256 efc1ddd16734047d9581361b59b2385823616c332754c08fd855b069d9a17df3

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