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,
Hi @Subhi Andrews
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.
@Daniel Santos , Thanks. Could you also help us with APIs for merging the pull request?
We probably need to extract pull-request id from the creation of pull-request step.
That should be the right direction.
It looks like you're new here. Sign in or register to get started.