We have some plans ( both build and deploy) that do commit and pushes of branches. We would like to create a pull request automatically after a branch is pushed. Is there a quick way to do this?
If we have to use Bitbucket APIs. Is there an example/documentation of how to use Python APIs for this purpose?
Thanks,
You could use a script task and call a REST API to create the pull request.
Below you can find two examples using the curl command, one for Bitbucket cloud and another for server.
Bitbucket Cloud
curl https://api.bitbucket.org/2.0/repositories/<USER_NAME>/<REPOSITORY>/pullrequests \ -u <USER_NAME>:<APP_PASSWORD> \ --request POST \ --header 'Content-Type: application/json' \ --data '{ "title": "<PULL-REQUEST TITLE>", "description": "<PULL-REQUEST DESCRIPTION>", "source": { "branch": { "name": "<SOURCE_BRANCH>" } }, "destination": { "branch": { "name": "<DESTINATION_BRANCH>" } } }'
Reference: /repositories/{username}/{repo_slug}/pullrequests - Bitbucket API
⚠️Please make sure you create an app password with read/write permission for pull-requests.
Bitbucket server
curl <BITBUCKET_URL>/rest/api/1.0/projects/<PROJECT>/repos/<REPOSITORY-SLUG>/pull-requests \ -u <USERNAME>:<PASSWORD> \ --request POST \ --header 'Content-Type: application/json' \ --data '{ "title": "<PULL-REQUEST TITLE>", "description": "<PULL-REQUEST DESCRIPTION>", "fromRef": { "id": "<SOURCE BRANCH>", "repository": { "slug": "<REPOSITORY_SLUG>", "project": { "key": "<PROJECT>" } } }, "toRef": { "id": "<DESTINATION BRANCH>", "repository": { "slug": "<REPOSITORY SLUG>", "project": { "key": "<PROJECT>" } } } }'
Reference: /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/archive - Bitbucket Server - REST
I hope that helps.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We probably need to extract pull-request id from the creation of pull-request step.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
That should be the right direction.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We were able to create Pull-Requests from Script task. Need an automatic merge from another script task or the same script task.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You will need to extract both the pull request ID version to merge it.
This is the call you can use:
Bitbucket server
curl -X POST <BITBUCKET_URL>/rest/api/1.0/projects/<PROJECT>/repos/<REPOSITORY_SLUG>/pull-requests/<PULL_REQUEST_ID>/merge?version=<VERSION> \
-u <USERNAME>:<PASSWORD> \
--header "Content-Type:application/json" \
--header "Accept:application/json"
Please keep us posted on your progres =]
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.