mirror of
https://code.forgejo.org/actions/setup-node.git
synced 2024-12-27 04:55:49 +00:00
78148dae50
* Updates * Update * Update * Update * Update * Yarn sometimes prefers npmrc, so use same token * Description * Update readme * Feedback * Add type * new toolkit and scoped registries * npmrc in RUNNER_TEMP * Dont always auth * Try exporting blank token * Get auth working for now pending runner changes * Fix string interpolation for auth token. * Don't export both userconfigs * Update authutil.js * Add single quotes for authString * Fix the registry string. * Use userconfig and append trailing slash * Keep in root of repo * Try just adding auth token * Remove auth token * Try changes again * Add tests * Npm and GPR samples * Add types
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
module.exports = octokitRestNormalizeGitReferenceResponses
|
|
|
|
const { RequestError } = require('@octokit/request-error')
|
|
|
|
function octokitRestNormalizeGitReferenceResponses (octokit) {
|
|
octokit.hook.wrap('request', (request, options) => {
|
|
const isGetOrListRefRequest = /\/repos\/:?\w+\/:?\w+\/git\/refs\/:?\w+/.test(options.url)
|
|
|
|
if (!isGetOrListRefRequest) {
|
|
return request(options)
|
|
}
|
|
|
|
const isGetRefRequest = 'ref' in options
|
|
|
|
return request(options)
|
|
.then(response => {
|
|
// request single reference
|
|
if (isGetRefRequest) {
|
|
if (Array.isArray(response.data)) {
|
|
throw new RequestError(`More than one reference found for "${options.ref}"`, 404, {
|
|
request: options
|
|
})
|
|
}
|
|
|
|
// ✅ received single reference
|
|
return response
|
|
}
|
|
|
|
// request list of references
|
|
if (!Array.isArray(response.data)) {
|
|
response.data = [response.data]
|
|
}
|
|
|
|
return response
|
|
})
|
|
|
|
.catch(error => {
|
|
if (isGetRefRequest) {
|
|
throw error
|
|
}
|
|
|
|
if (error.status === 404) {
|
|
return {
|
|
status: 200,
|
|
headers: error.headers,
|
|
data: []
|
|
}
|
|
}
|
|
|
|
throw error
|
|
})
|
|
})
|
|
}
|