How to assign a pull request using the REST API? - github

I'm creating a GitHub pull request using the appropriate REST API. Specifying a single assignee or an assignees (using either the user login or GitHub's internal id) has no effect. The pull request will be created, but without an assignee set. There also seems to be no other endpoint to explicitly assign a pull request to a user. Now I'm wondering whether it's possible at all to set the assignee of a pull request using the REST API?

Every pull request is an issue, but not every issue is a pull request.
For this reason, "shared" actions for both features, like manipulating
assignees, labels and milestones, are provided within the Issues API.
From PR Doc
So, you can use Add assignees to an issue API to set an assignee(s) to a pull request After PR is created. You need to know its number, which is in the JSON body of Create Pull Request's response.
/repos/{owner}/{repo}/issues/{issue_number}/assignees
where issue_number is same as pr_number

Related

How to format Status Check Responses in Azure Devops Pull Requests

I have a branch policy that enforces the use of pull requests into a specific branch.
The policy also requires that an external status check is passed, in this case a web hook is triggered by the creation or update of the pull request. The web hook calls a web api which updates the status of the pull request via the devops REST API to set the required state check to succeeded or failed and include a description.
The description posted to the devops REST API is then displayed in the pull request in the event of a filed status check. For example:
I have control of the content of the returned description from the web api endpoint, and I am looking for a way to control the formatting of the displayed message in the pull request. Specifically a way to break the text over multiple lines.
I have tried adding a <br/> (shown above) or \n or \r or even \r\n to the text, all with no success.
Is it possible to do this? is there any parsing of the returned text, maybe to allow the use of something like markdown?

If I have a GitHub issue number for a pull request, is that the same as the pull request number?

When I create a pull request immediately after an issue, the pull request number is often 1 more than the issue number, which suggests that they share the same counter. As well, the Create an issue comment API seems to be the primary way for commenting back to the main discussion in a pull request, and API requests an issue_number. However, nothing on GitHub officially states that the issue number is equal to the pull request number.
Is there any official documentation or comment that verifies if an issue number for a pull request is equal to its pull request number?
Issues, pull requests, and (if enabled) discussions are all numbered from the same pool. If you're using the API, using the pull request number for shared actions is the right thing to do:
Every pull request is an issue, but not every issue is a pull request. For this reason, "shared" actions for both features, like manipulating assignees, labels and milestones, are provided within the Issues API.
Yes, they share the same numbers.
You could also see when changing the number in the url (pull request url or issue url), it will redirect to the correct type (so issue or pull request)
It's some what documented here: https://docs.github.com/en/github/writing-on-github/autolinked-references-and-urls#issues-and-pull-requests
Issue or pull request URL
...
Short link
#26

Query Pull Requests by CommitID without Repository ID

Can I get the Pull Requests by commit ID without providing a repository ID? I am auditing releases and need information provided by PRs. I am starting without repository info in the data so currently need to query the Repository api and then associate the commits to the repositories before I can make the Pull Request query.
Additionally, can this be done with a Get requests? It seems like it should be a get request but currently requires a Post with a body. Instead of an additional api, shouldn't the filtering for PR type just be in the uri parameters?
Have you tried it with GetPullRequestByProject instead?
https://learn.microsoft.com/en-us/rest/api/azure/devops/git/pull%20requests/get%20pull%20requests%20by%20project?view=azure-devops-rest-5.1
Since you already have commit Id, from the response, you can query JSON to retrieve the required information. That will also fulfill the second requirement on GET operation.

Github Pull Request Checks

Is it possible to create a Github Check for pull requests? I know there are WebHooks, but is there a way to also hook into the UI?
Aim:
Pull Request made. Perform validation and update pull request if valid.
Pull Request merged. Create web call to URL. Update Github issue with confirmation.
What's the best way to do this? Is it only via Web Hooks, API calls and getting write oAuth credentials?
Note: you now (August 2018) officially have the notion of Checks
When checks are set up in a repository, pull requests have a Checks tab where you can view detailed build output from status checks and rerun failed checks.
I know there are WebHooks, but is there a way to also hook into the UI?
The recommended way of doing this is to use required status checks and the Status API, in combination with webhooks:
https://help.github.com/articles/about-required-status-checks/
https://developer.github.com/v3/repos/statuses/
Users set up required status checks on the repository so that merging a pull request is blocked if a specific status isn't success.
At the same time, webhooks trigger an external process when a pull request is updated, and that process creates statuses based on the output of that process. If the process completes successfully, then the process should create a success status which will be shown in the UI and unblock the merging of the pull request.
Is it only via Web Hooks, API calls and getting write oAuth credentials?
In order to create statuses, you will indeed need to authenticate with the credentials of a user that has push access to the repository (e.g. via a token from that user with the right scopes).

How to get pull requests references for an issue

Given a GitHub issue, is there any way to get the pull requests that reference to that issue via API?
That info is showed in the GitHub html page but I can't see nothing in the API documentation.
Is it really possible?
is there any way to get the pull requests that reference to that issue via API
Not directly.
Even the reverse is not possible, as a pull request has a link 'issue' pointing to... itself.
But as mentioned in the issue API:
In the past, pull requests and issues were more closely aligned than they are now.
As far as the API is concerned, every pull request is an issue, but not every issue is a pull request.
This endpoint may also return pull requests in the response. If an issue is a pull request, the object will include a pull_request key.
So you would need to list the comments of a pull request (using the Issue Comments API since comments on PR are done with it), and parse said comment to find a reference to an issue.