This tool was developed to provide and easy way to clone all of the repositories contained within an Atlassian Bitbucket Project. In the future the ability to push multiple repositories to an Atlassian Bitbucket Project will also be included. Other platforms (ex. GitHub, GitLab, etc) may eventually be supported as well.
Currently robostash supports "archive-bb" mode which will create a tarball containing mirror (bare) copies of all of the Git repositories contained within a single Bitbucket project. The tarball will be created within your current working directory.
Robostash also supports "archive-list" mode which will create a tarball containing mirror (bare) copies of all of the Git repositories listed in a file. The file should be formatted with the URLs of the repositories to be cloned, one repository per line. This mode currently does not support providing credentials for cloning the repos. It is assumed they are publicly accessible, ssh keys or a git-credential store has already been configured.
- Robostash only supported on Linux
python
andgit
installed on the machine that will runrobostash
-
At this point there is very little error handling. It is up to the user ensure there is sufficient disk space within the current working directory for cloning and archiving all of the repositories within the chosen Bitbucket project.
-
The created tarball will be named
[project_key].tar.gz
and placed in the current working directory -
If an existing tarball named
[project_key].tar.gz
exists, it will be overwritten without prompt
Robostash is on PyPi
pip install robostash
Argument | Description | Type | Default Value |
---|---|---|---|
-u ,--user |
Bitbucket username | string | None |
-p ,--password |
Bitbucket password | string | None |
-f ,--credfile |
path to a Bitbucket password file | string | None |
-k ,--key |
Bitbucket project key | string | None |
-b ,--url |
Bitbucket url | string | None |
-v ,--version |
Display program version | N/A | None |
-h ,--help |
Display program help | N/A | None |
Run the program to archive all of the repos in a Bitbucket project
robostash archive-bb -u thomas.magnum -p H1ggyBabby -k rmasters -u https://bitbucket.com
robostash archive-bb -u thomas.magnum -f ~/pass -k rmasters -u https://bitbucket.com
Run the program to archive a list of repos
robostash archive-list -r ~/repos -n githubrepos
Run the program to display the version
robostash -v
Run the program with no arguments or the -h/--help option to display help
robostash
robostash -h
MIT
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Make sure version numbers are updated in:
- __init__.py
- robostash/cli.py
- setup.py
- VERSION.md
virtualenv ~/venv_robostash
source ~/venv_robostash/bin/activate
pip install twine stashy termcolor
git clone https://github.com/dinohead/robostash.git
cd robostash
python setup.py clean
python setup.py check
python setup.py build
python setup.py sdist
twine upload dist/*
Author | Note | |
---|---|---|
Derek Halsey | [email protected] | The OG Jinja Ninja |