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

Uploaded Python 3

File details

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

File metadata

  • Download URL: BunkerSync-0.0.11.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.11.tar.gz
Algorithm Hash digest
SHA256 d499f64e834a2d3afc7c945188fc7ff2f0408f8500a40e13179812df2394de72
MD5 d6e289b1185d9b5f6f826ad77cbe81c7
BLAKE2b-256 a62df341452bc18395f265a26edc4240e510825fd9ea259585e3489ab2cfc5bf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: BunkerSync-0.0.11-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.11-py3-none-any.whl
Algorithm Hash digest
SHA256 b7cb988723e1b5334dbae7a083fb3741d4e620dfbccbe4833567634709c488f9
MD5 3f96d69883a4a6680ef512a6876c414c
BLAKE2b-256 a22b02e13f6248b5878a290ce5393a0234799e705c35c64759075c652c27d3b0

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