mirror of
https://github.com/actions/setup-node
synced 2024-12-24 22:22:41 +00:00
39 lines
1 KiB
JavaScript
39 lines
1 KiB
JavaScript
|
module.exports = getPage
|
|||
|
|
|||
|
const deprecate = require('./deprecate')
|
|||
|
const getPageLinks = require('./get-page-links')
|
|||
|
const HttpError = require('./http-error')
|
|||
|
|
|||
|
function getPage (octokit, link, which, headers) {
|
|||
|
deprecate(`octokit.get${which.charAt(0).toUpperCase() + which.slice(1)}Page() – You can use octokit.paginate or async iterators instead: https://github.com/octokit/rest.js#pagination.`)
|
|||
|
const url = getPageLinks(link)[which]
|
|||
|
|
|||
|
if (!url) {
|
|||
|
const urlError = new HttpError(`No ${which} page found`, 404)
|
|||
|
return Promise.reject(urlError)
|
|||
|
}
|
|||
|
|
|||
|
const requestOptions = {
|
|||
|
url,
|
|||
|
headers: applyAcceptHeader(link, headers)
|
|||
|
}
|
|||
|
|
|||
|
const promise = octokit.request(requestOptions)
|
|||
|
|
|||
|
return promise
|
|||
|
}
|
|||
|
|
|||
|
function applyAcceptHeader (res, headers) {
|
|||
|
const previous = res.headers && res.headers['x-github-media-type']
|
|||
|
|
|||
|
if (!previous || (headers && headers.accept)) {
|
|||
|
return headers
|
|||
|
}
|
|||
|
headers = headers || {}
|
|||
|
headers.accept = 'application/vnd.' + previous
|
|||
|
.replace('; param=', '.')
|
|||
|
.replace('; format=', '+')
|
|||
|
|
|||
|
return headers
|
|||
|
}
|