Bitbucket has a remote merge facility. In the event that a target branch already contains the commits in a pull request, the PR will be remotely merged. I would like to determine which pull requests contain a commit so I can determine which approved pull requests led to the remote merge status.
From the API docs, I can use GET /rest/api/latest/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/commits to identify the commits. Is there a reverse operation that shows pull requests for a specific commit?
I am not finding the info in the API page here: https://developer.atlassian.com/server/bitbucket/rest/v807/
Using the Bitbucket REST API, I’m looking for a way to get all pull requests that are assigned to a user. So far this endpoint: https://api.bitbucket.org/2.0/repositories/{workspace}/{repository_name}/pullrequests/{pullrequest_id}?fields=reviewers will show me the reviewer assigned to that specific pull request ID. Is there a way to do that, but not for a specific pull request, rather all pull requests assigned to a user?
I'm using the Microsoft.VisualStudio.Services.Client library (added via NuGet) to connect to my on-prem Azure Dev Ops server and query various bits of information regarding pull requests. I'd like to make a little notification application that can alert me if someone has replied to a comment I made on a pull request. The trick is that I only want to see the notification if I haven't already looked at it.
I know that the system knows when I last looked at the pull request because it decorates pull requests with new content (comments, new code, etc.) with a little dot and when I open a pull request, it tells me that there are new comments since I visited last and tells me how long ago I looked at it.
How do I get access to the date that I opened the pull request in the web via the client libraries or REST? In other words, how would my app know that I have or haven't looked at new comments via the web page?
I did not find such an api that can retrieve the timestamp the last time you looked at the PR.
There is lastUpdatedDate you can use to track the comments that were checked. So as a workaround you can save the lastUpdatedDate to a file in your code, and compare this value everytime when you call api. Then you will get the latest updated comments.
However, PR comments notification can also be configured from azure devops. You can go to your user profile on the top right corner and select notifications to enable the notification for A comment is left on a pull request.
For more information about Azure devops notification, you can check this document.
I have question on ADS GIT Pull request permissions Is there any way to prevent others from being able to change the status your pull request? like being able to publish your draft request, setting the complete status, abandoning etc?
Is there any way to prevent others from being able to change the status your pull request?
Sorry for any inconvenience.
Now, Azure devops service/server doesn't provide a feature to meet this requirement.
To protect the Pull Request, you could add reviewers for the target branch to prevent set the complete status directly.
On the other hand, we could set creator's target branch or repo contribute permission to Deny, you need to add specific user to target Branch security page. This not applied to all the creators all the PRs. Just a specific PR and specific user:
But none of these settings apply to abandon. For this option, you could add your request for this feature on our UserVoice site (https://developercommunity.visualstudio.com/content/idea/post.html?space=21 ), which is our main forum for product suggestions. Thank you for helping us build a better Azure DevOps.
Hope this helps.
This is somewhat similar to Pull request policies - Build expired - How can I run the build again? but looks at the automation side.
Our context: We have pull requests which protect our master branch and each completed pull requests expires the builds of all other pull requests to ensure that the builds of all of the remaining pull requests have to be re-queued and build and test correctly.
Now we have times where we get pull request contention (I am looking at you, end-of-sprint!) in these times we have plenty of pull requests open. While we are working on minimizing the amount, it sometimes just happens.
Is there a plugin or some feature I am missing that actually can trigger all of those expired builds after a PR completes automatically? There is a way to automatically expire all other PR builds, so I would have thought that there is also a way to re-queue them automatically. I know this might trigger a build cascade but I would like to have my PRs always as up-to-date as possible.
Related REST API is not documented, however you can track it by tools such as Fiddler or press F12 in Chrome browser then select Network.
In the pull request page to manually queue the build as mentioned in your question.
For example with my azure devops service, I get below API
Post https://dev.azure.com/patricklu/_apis/Contribution/dataProviders/query/project/a72e1ef5-4921-49c5-9260-e72b7bff977d
Request Body:
{"contributionIds":["ms.vss-code-web.pull-request-detail-policy-data-provider"],"context":{"properties":{"repositoryId":"357893bf-9a1f-4ee4-95d3-c5ceda4f4abc","pullRequestId":12,"policyEvaluationIds":["bca44f9f-268f-4640-aa7e-af5253b3b11e"],"pageSource":{"contributionPaths":["VSS","VSS/Resources","q","knockout","mousetrap","mustache","react","react-dom","react-transition-group","jQueryUI","jquery","OfficeFabric","tslib","#uifabric","VSSUI","ContentRendering","ContentRendering/Resources","TFSUI","TFSUI/Resources","WidgetComponents","WidgetComponents/Resources","Charts","Charts/Resources","TFS","Notifications","Presentation/Scripts/marked","Presentation/Scripts/URI","Presentation/Scripts/punycode","Presentation/Scripts/IPv6","Presentation/Scripts/SecondLevelDomains","highcharts","highcharts/highcharts-more","highcharts/modules/accessibility","highcharts/modules/heatmap","highcharts/modules/funnel","Analytics"],"diagnostics":{"sessionId":"8277adc6-6810-4cf9-b984-10860e90c0b5","activityId":"8277adc6-6810-4cf9-b984-10860e90c0b5","bundlingEnabled":true,"cdnAvailable":true,"cdnEnabled":true,"webPlatformVersion":"M156","serviceVersion":"Dev17.M156.1 (build: AzureDevOps_M156_20190821.17)"},"navigation":{"topMostLevel":8,"area":"","currentController":"Apps","currentAction":"ContributedHub","currentParameters":"12","commandName":"Git.pullrequest","routeId":"ms.vss-code-web.pull-request-review-route","routeTemplates":["{project}/{team}/_git/{GitRepositoryName}/pullrequest/{parameters}","{project}/_git/{GitRepositoryName}/pullrequest/{parameters}","_git/{project}/pullrequest/{parameters}"],"routeValues":{"project":"GITAgile","parameters":"12","controller":"Apps","action":"ContributedHub","vctype":"git","viewname":"pull-request-review"}},"project":{"id":"a72e1ef5-4921-49c5-9260-e72b7bff977d","name":"GITAgile"},"selectedHubGroupId":"ms.vss-code-web.code-hub-group","selectedHubId":"ms.vss-code-web.pull-request-hub","url":"https://dev.azure.com/patricklu/_git/GITAgile/pullrequest/12?_a=overview"},"sourcePage":{"url":"https://dev.azure.com/patricklu/_git/GITAgile/pullrequest/12?_a=overview","routeId":"ms.vss-code-web.pull-request-review-route","routeValues":{"project":"GITAgile","parameters":"12","controller":"Apps","action":"ContributedHub","vctype":"git","viewname":"pull-request-review"}}}}}
As you can see there is some value such as repository ID and pull Request ID. Follow this, you should be able to user API to rerun some builds for a specific Pull Request.
You could use Azure DevOps Services service hooks or Rest API to track pull request completed or not, then use above API call to re-run the build. Hope this helps.