Using the API to download diff from private project
The README has a good example to obtain the diff of a given pull request using
const diff_url = context.payload.pull_request.diff_url
However, there's a note that says "(Note that this particular example only works for a public URL, where the diff URL is publicly accessible. Getting the diff for a private URL requires using the API.)"
What does using the API mean ? How do I add credentials to the github oktokit client to allow it to fetch the diff URL from my private repo ? The diff_url I'm trying to access is part of the same project in which the workflow runs.
This is likely related to https://github.com/actions/github-script/issues/272.
Using the octokit exposed via the github argument, you should be able to retreive the diff, however it does not work because of the above issue. For example, this should work but it does not with actions/github-script:
# This does not work because headers are stripped
name: Get PR diff
on: pull_request
jobs:
diff:
name: Diff
runs-on: ubuntu-latest
steps:
- name: Diff
uses: actions/[email protected]
with:
script: |
const pull_url = context.payload.pull_request.url
const result = await github.rest.pulls.get({
...context.repo,
pull_number: context.payload.pull_request.number,
mediaType: {
format: "diff",
},
});
console.log(result)
https://github.com/DataDog/integrations-core/blob/c4070ffa9cfaad57420f8e3c92a4877f62cfd5c5/.github/workflows/pr-quick-check.yml#L35-L45