Deploys Bitbucket Environment
npm install bitbucket-env-manager
$ npm i -g bitbucket-env-manager
`$3
`
$ bitbucket-env-manager
`$3
`
init
generate
------
deploy
list
delete
`
---
Setup Bitbucket OAuth Consumer
Before initializing, you need to create an OAuth consumer in Bitbucket:
1. Go to Bitbucket → Workspace settings → OAuth consumers
2. Click Add consumer and configure:
- Name: Any descriptive name (e.g., "Env Manager")
- Callback URL:
https://bitbucket.org (required even though not used)
- Check: "This is a private consumer"
- Permissions:
- Repositories: Read and Write
- Pipelines: Read and Write
3. Click Save and copy the Key (Client ID) and Secret> Note: If you see the error
"No callback uri defined for the OAuth client", ensure you have set a Callback URL and checked "This is a private consumer".---
Initialize Credentials
- It should create ~/.bitbucket_env_manager/ file
- During the auth API calls, this should create access tokens in ~/.bitbucket_env_manager/ file
`
bitbucket-env-manager init
`
- Set OAUTH_CLIENT, OAUTH_SECRET and WORKSPACE
Generate
`
$ bitbucket-env-manager generate
`
- Creates a new project manager folder with example for bitbucket environments
- In project_envs/example/info.json set the workspace and repository_slug names from bitbucket.
- workspace
- repo
Deploy
`
$ bitbucket-env-manager deploy
`
- Select multiple .env files to be deployed to bitbucket from project_envs folder.
- As indicated in example folder, the folder should
- contain environment variables file with name pattern .env.{0|1|2}.{env_name} .
- {0|1|2} is for the rank of the environment to be created.
- 0 -> Test, 1 -> Staging, 2 -> Production
- {env_name} is the environment name to be created.
- optionally contain a .env.repo file for repository-level variables that will be deployed once per repository
- contain info.json file, with
- workspace : workspace name
- repo : repository_slug name
- secured : [], an Array with keys from the env files (including .env.repo) that need to be marked as secured in bitbucket.
- envs_config : { [env_name] : {admin_only:boolean} }, Config object for each {env_name}. admin_only boolean flag allows to specify if the environment needs to be restricted to be deployed by admins only.$3
You can now manage repository-level variables using a .env.repo file:
- Place .env.repo alongside your environment .env files
- Variables in this file will be deployed at the repository level
- These variables will be available to all environments
- The secured array in info.json also applies to repository variables
- Repository variables are deployed only once when multiple environments are deployed together
### Example:
.env.0.Development filename deployment will delete any existing Development environment and variables from the bitbucket repository, and creates a new Development environment under Test Category.
List
`
$ bitbucket-env-manager list
`
- Allows to list variables from existing environment from the repository
- Select the info.json file for the desired repository
- Select the env_name from the list to to view the variables from the environment in bitbucket.
Delete
`
bitbucket-env-manager delete
`
- Allows to delete a existing environment from the repository
- Select the info.json file for the desired repository
- Select the env_name` from the list to remove the environment from bitbucket.