Pack for integration of Bitbucket into StackStorm. The pack includes the functionality to perform actions on Bitbucket through StackStorm.
Copy the example configuration in bitbucket.yaml.example
to /opt/stackstorm/configs/bitbucket.yaml
and edit as required.
It must contain:
username
- Bitbucket usernamepassword
- Bitbucket passwordemail
- Email associated with bitbucket username
You can also use dynamic values from the datastore. See the docs for more info.
Note : When modifying the configuration in /opt/stackstorm/configs/
please
remember to tell StackStorm to load these new values by running
st2ctl reload --register-configs
This action is used to list all the repositories of a user.
Usage:
st2 run bitbucket.list_repos
This action is used to create a repository.
Usage:
st2 run bitbucket.create_repo repo="<repo-name-to-create>"
This action is used to delete a repository.
Usage:
st2 run bitbucket.delete_repo repo="<repo-name-to-delete>"
This action archives a repository and returns a path to the archived repository.
Usage:
st2 run bitbucket.archive_repo repo="<repo-name-to-archive>"
This action is used to create an issue.
Usage:
st2 run bitbucket.create_issue repo="<repo-name>" title="<issue-title>" desc="<description-of-issue>" status=<new,open,resolved> kind="<bug, proposal>"
This action is used to list all issues for a given repository.
Usage:
st2 run bitbucket.list_issues repo="<repo-name>"
This action is used to update issue's description for a given repository.
Usage:
st2 run bitbucket.update_issue repo="<repo-name>" id=<issue-id> desc="<updated-description>"
This action is used to delete issues for a given repository. Provide an array of IDs (this can be provided as a comma separated string of IDs using the CLI) to delete more than one issue.
Usage:
st2 run bitbucket.delete_issues repo="<repo-name>" ids=<1,2,3,4>
This action to create a service/hook.
Usage:
st2 run bitbucket.create_service repo="<repo-name>" url="<URL-for-service>" service="<service-name-to-hook>"
This action is used to list services/hooks.
Usage:
st2 run bitbucket.list_services repo="<repo-name>"
This action is used to update service/hook.
Usage:
st2 run bitbucket.update_service repo="<repo-name>" id=<id-of-service> url="<url-to-update>"
This action is used to delete services/hooks for a given repository.
Usage:
st2 run bitbucket.delete_services repo="<repo-name>" ids=<1,2,3,4>
This action lists the SSH keys of a user.
Usage:
st2 run bitbucket.list_ssh_keys
This action deletes a SSH key associated with user's account.
Usage:
st2 run bitbucket.delete_ssh_key key_id=<id-of-ssh-key>
This action associates a SSH key associated with user's account.
Usage:
st2 run bitbucket.associate_ssh_key ssh_key="<ssh-key>" label="<label-for-SSH-key>"
This action lists the branches of a given repository.
Usage:
st2 run bitbucket.list_branches repo="<repo_name>"
This sensor monitors the BitBucket(Cloud/Server) repositories and dispatches following bitbucket.repository_event
trigger.
Currently, this supports following event type.
commit
- Triggered when new commit(s) are made.
Here is an example of trigger payload:
{
"id": "25",
"created_at": "2017-09-29 03:19:50",
"type": "commit",
"payload": {
"repository": "xaas/deploy-test",
"branch": "master",
"changed_files": {"deleted": [], "added": [], "moved": [], "modified": ["foo/bar", u"hoge/fuga/tmp01"]},
"commits": [
{
"msg": "A test commit message",
"author": "[email protected]",
"repository": "XAAS/deploy-test",
"branch": "master",
"time": "2017-09-29 03:19:36",
"files": {"deleted": [], "added": [], "moved": [], "modified": ["foo/bar"]},
},
...
]
}
}
restriction The files
and changed_files
parameters are not set in the Bitbucket cloud (The feature is not implemented, yet)
This rule triggers packs.install
action (in StackStorm v2.1+) to allow
auto-deployment of a pack from a git repository.
This has a number of pre-dependencies:
- Setting Workflow / Hooks / Post-Receive WebHooks pointing at the URL:
https://<my-server>/api/v1/webhooks/bitbucket_post_receive?st2-api-key=<ST2-API-Key>
- The rule is disabled by default and needs to be enabled with
st2 rule enable bitbucket.post_receive_webhook
Important: The BitBucket server (or cloud) needs to be able to reach
your StackStorm server and consider the SSL cert as valid. The
ST2-API-Key
should be generated as per the instructions at
https://docs.stackstorm.com/authentication.html.