Skip to main content

Clone all repositories from a Bitbucket workspace.

Project description

Bucketcloner

Simple tool to list all your bitbucket workspaces and clone (all) repositories associated with these workspaces.

Requirements

  1. You need to know your Bitbucket account email. Can be found at https://bitbucket.org/account/settings/email/.
  2. You need to create an API token here https://id.atlassian.com/manage-profile/security/api-tokens with read permissions for account, workspace membership and repositories.
Command Scopes
workspace read:user:bitbucket, read:workspace:bitbucket
clone read:user:bitbucket, read:workspace:bitbucket, read:repository:bitbucket
project read:user:bitbucket, read:workspace:bitbucket, read:project:bitbucket

Install bucketcloner either by cloning this repository and running pip install . or by installing it via pip install bucketcloner. Minimum required python version is 3.9.

Alternatively, you can run bucketcloner using uvx: uvx bucketcloner --help

Authentication for cloning the repository can be done via https and the API token or using an SSH key. IMPORTANT: When using ssh make sure you have added the bitbucket server ssh fingerprint to the known hosts, otherwise the command will fail. Run git clone git@bitbucket.org:... once manually to make sure the key is added.

You can pass your ssh key with --ssh-key, otherwise the users default ssh key will be used.

List all workspaces

bucketcloner -e <email> -t <api_token> workspace

This lists all workspaces, including your personal workspace, where you have access.

Clone workspace(s)

You can clone all repositories of all workspaces by simply calling

bucketcloner -e <email> -t <api_token> clone

This clones all repositories of all workspaces into the folders workspace/repository relative to the current directory.

To select specific workspace(s), add the -w option with workspace slug names separated by commas

bucketcloner -e <email> -t <api_token> -w workspace1,workspace2 clone

All existing repositories in the folders will be deleted and cloned again. To just skip existing repositories, add --skip-existing flag.

bucketcloner -e <email> -t <api_token> -w workspace1,workspace2 --skip-existing clone

Clone all repos from all workspaces with project PRO1 into /tmp with folder structure workspace/project/repo.

bucketcloner -e <email> -t <api_token> --project PRO1 --base-folder /tmp --project-folder clone

Clone all repos using an ssh key

bucketcloner -e <email> -t <api_token> --base-folder /tmp  --auth-mode ssh --ssh-key "/my/id_rsa" clone

List all projects in all workspaces

bucketcloner -e <email> -t <api_token> project

Python example

The example.ipynb includes an example how to read the workspaces and download the repositories from within python.

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

bucketcloner-0.3.1.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

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

bucketcloner-0.3.1-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file bucketcloner-0.3.1.tar.gz.

File metadata

  • Download URL: bucketcloner-0.3.1.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bucketcloner-0.3.1.tar.gz
Algorithm Hash digest
SHA256 f63b4e6010ac89cdc6497b6adc460556cac5edb44458c78f2e43f48dc7b41932
MD5 afa9bde772692ea7a6366de5e2e3f488
BLAKE2b-256 0642393b21ef9de7f3fb3522df0cb99cadbd650784d7093f492983fc05d264ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for bucketcloner-0.3.1.tar.gz:

Publisher: publish.yml on phillies/bucketcloner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bucketcloner-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: bucketcloner-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bucketcloner-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3890248c662439cb9700e1ca3bcb80809666bcc5881bc8e7cd1ab1129bffe71f
MD5 a7352e8342e99566dcca618851e26cde
BLAKE2b-256 b5f0f10b0b2e34f97c1489dea04c76fc2b6dd4e9e6bedba214519ce867b42195

See more details on using hashes here.

Provenance

The following attestation bundles were made for bucketcloner-0.3.1-py3-none-any.whl:

Publisher: publish.yml on phillies/bucketcloner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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