I would like to create automated release notes based on the Pull Request description like "Add legal resolutions claim report function" on the screen below.
I'm not very good with Pull Requests and not even sure is that "description" is Bitbucket only functionality. However the question is how can I automatically get this description from Pull Request? I couldn't find anywhere in the commits messages.
Today, Bitbucket has two main services: Bitbucket Server and Bitbucket Cloud. If you have not downloaded a bitbucket server, you're most likely using the bitbucket cloud. To connect to the Bitbucket Cloud API, you can either use the Atlassian Connect to build an app to connect to bitbucket or you can use the rest apis (reference to all of their endpoints: https://developer.atlassian.com/bitbucket/api/2/reference/).
This is the api you would call to get all the information of all the pull requests from a given <repository name>
of a <username>
:
curl -u <username>:<password> https://api.bitbucket.org/2.0/repositories/<username>/<repository name>/pullrequests
If you have jq installed, you could pipe the output of the above api to it to retrieve only the descriptions, as you requested in your question. The following command would list all descriptions of all pull requests from <repository name>
of <username>
:
curl -u <username>:<password> https://api.bitbucket.org/2.0/repositories/<username>/<repository name>/pullrequests | jq ".values[] | .summary.raw"
This is the output I get from running requesting the above api on my bitbucket repository:
{
"pagelen": 10,
"values": [
{
"description": "this is just a description for testing the pull request api endpoint",
"links": {
"decline": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/pullrequests/1/decline"
},
"commits": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/pullrequests/1/commits"
},
"self": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/pullrequests/1"
},
"comments": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/pullrequests/1/comments"
},
"merge": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/pullrequests/1/merge"
},
"html": {
"href": "https://bitbucket.org/dhulke/ojspkp/pull-requests/1"
},
"activity": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/pullrequests/1/activity"
},
"diff": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/pullrequests/1/diff"
},
"approve": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/pullrequests/1/approve"
},
"statuses": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/pullrequests/1/statuses"
}
},
"title": "adding a to test a pull request",
"close_source_branch": false,
"type": "pullrequest",
"id": 1,
"destination": {
"commit": {
"hash": "6188a5897db9",
"type": "commit",
"links": {
"self": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/commit/6188a5897db9"
},
"html": {
"href": "https://bitbucket.org/dhulke/ojspkp/commits/6188a5897db9"
}
}
},
"repository": {
"links": {
"self": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp"
},
"html": {
"href": "https://bitbucket.org/dhulke/ojspkp"
},
"avatar": {
"href": "https://bytebucket.org/ravatar/%7B605ba8e3-7b25-4093-9c72-f847da4b2464%7D?ts=default"
}
},
"type": "repository",
"name": "OJSPKP",
"full_name": "dhulke/ojspkp",
"uuid": "{605ba8e3-7b25-4093-9c72-f847da4b2464}"
},
"branch": {
"name": "master"
}
},
"created_on": "2018-09-15T23:17:25.931924+00:00",
"summary": {
"raw": "this is just a description for testing the pull request api endpoint",
"markup": "markdown",
"html": "<p>this is just a description for testing the pull request api endpoint</p>",
"type": "rendered"
},
"source": {
"commit": {
"hash": "b02656e67546",
"type": "commit",
"links": {
"self": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp/commit/b02656e67546"
},
"html": {
"href": "https://bitbucket.org/dhulke/ojspkp/commits/b02656e67546"
}
}
},
"repository": {
"links": {
"self": {
"href": "https://api.bitbucket.org/2.0/repositories/dhulke/ojspkp"
},
"html": {
"href": "https://bitbucket.org/dhulke/ojspkp"
},
"avatar": {
"href": "https://bytebucket.org/ravatar/%7B605ba8e3-7b25-4093-9c72-f847da4b2464%7D?ts=default"
}
},
"type": "repository",
"name": "OJSPKP",
"full_name": "dhulke/ojspkp",
"uuid": "{605ba8e3-7b25-4093-9c72-f847da4b2464}"
},
"branch": {
"name": "teste"
}
},
"comment_count": 0,
"state": "OPEN",
"task_count": 0,
"reason": "",
"updated_on": "2018-09-15T23:17:25.963178+00:00",
"author": {
"username": "dhulke",
"display_name": "Danilo Moraes",
"account_id": "557058:ab26766f-757e-4687-88ff-099bd94b0895",
"links": {
"self": {
"href": "https://api.bitbucket.org/2.0/users/dhulke"
},
"html": {
"href": "https://bitbucket.org/dhulke/"
},
"avatar": {
"href": "https://bitbucket.org/account/dhulke/avatar/"
}
},
"type": "user",
"uuid": "{1b22ad2c-9f1c-48f4-b9dc-958e8eddd3e8}"
},
"merge_commit": null,
"closed_by": null
}
],
"page": 1,
"size": 1
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With