github.com/nektos/act@v0.2.63/pkg/runner/testdata/actions/node16/node_modules/@octokit/request/dist-node/index.js (about) 1 'use strict'; 2 3 Object.defineProperty(exports, '__esModule', { value: true }); 4 5 function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } 6 7 var endpoint = require('@octokit/endpoint'); 8 var universalUserAgent = require('universal-user-agent'); 9 var isPlainObject = require('is-plain-object'); 10 var nodeFetch = _interopDefault(require('node-fetch')); 11 var requestError = require('@octokit/request-error'); 12 13 const VERSION = "5.6.3"; 14 15 function getBufferResponse(response) { 16 return response.arrayBuffer(); 17 } 18 19 function fetchWrapper(requestOptions) { 20 const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; 21 22 if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { 23 requestOptions.body = JSON.stringify(requestOptions.body); 24 } 25 26 let headers = {}; 27 let status; 28 let url; 29 const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; 30 return fetch(requestOptions.url, Object.assign({ 31 method: requestOptions.method, 32 body: requestOptions.body, 33 headers: requestOptions.headers, 34 redirect: requestOptions.redirect 35 }, // `requestOptions.request.agent` type is incompatible 36 // see https://github.com/octokit/types.ts/pull/264 37 requestOptions.request)).then(async response => { 38 url = response.url; 39 status = response.status; 40 41 for (const keyAndValue of response.headers) { 42 headers[keyAndValue[0]] = keyAndValue[1]; 43 } 44 45 if ("deprecation" in headers) { 46 const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); 47 const deprecationLink = matches && matches.pop(); 48 log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); 49 } 50 51 if (status === 204 || status === 205) { 52 return; 53 } // GitHub API returns 200 for HEAD requests 54 55 56 if (requestOptions.method === "HEAD") { 57 if (status < 400) { 58 return; 59 } 60 61 throw new requestError.RequestError(response.statusText, status, { 62 response: { 63 url, 64 status, 65 headers, 66 data: undefined 67 }, 68 request: requestOptions 69 }); 70 } 71 72 if (status === 304) { 73 throw new requestError.RequestError("Not modified", status, { 74 response: { 75 url, 76 status, 77 headers, 78 data: await getResponseData(response) 79 }, 80 request: requestOptions 81 }); 82 } 83 84 if (status >= 400) { 85 const data = await getResponseData(response); 86 const error = new requestError.RequestError(toErrorMessage(data), status, { 87 response: { 88 url, 89 status, 90 headers, 91 data 92 }, 93 request: requestOptions 94 }); 95 throw error; 96 } 97 98 return getResponseData(response); 99 }).then(data => { 100 return { 101 status, 102 url, 103 headers, 104 data 105 }; 106 }).catch(error => { 107 if (error instanceof requestError.RequestError) throw error; 108 throw new requestError.RequestError(error.message, 500, { 109 request: requestOptions 110 }); 111 }); 112 } 113 114 async function getResponseData(response) { 115 const contentType = response.headers.get("content-type"); 116 117 if (/application\/json/.test(contentType)) { 118 return response.json(); 119 } 120 121 if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { 122 return response.text(); 123 } 124 125 return getBufferResponse(response); 126 } 127 128 function toErrorMessage(data) { 129 if (typeof data === "string") return data; // istanbul ignore else - just in case 130 131 if ("message" in data) { 132 if (Array.isArray(data.errors)) { 133 return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; 134 } 135 136 return data.message; 137 } // istanbul ignore next - just in case 138 139 140 return `Unknown error: ${JSON.stringify(data)}`; 141 } 142 143 function withDefaults(oldEndpoint, newDefaults) { 144 const endpoint = oldEndpoint.defaults(newDefaults); 145 146 const newApi = function (route, parameters) { 147 const endpointOptions = endpoint.merge(route, parameters); 148 149 if (!endpointOptions.request || !endpointOptions.request.hook) { 150 return fetchWrapper(endpoint.parse(endpointOptions)); 151 } 152 153 const request = (route, parameters) => { 154 return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); 155 }; 156 157 Object.assign(request, { 158 endpoint, 159 defaults: withDefaults.bind(null, endpoint) 160 }); 161 return endpointOptions.request.hook(request, endpointOptions); 162 }; 163 164 return Object.assign(newApi, { 165 endpoint, 166 defaults: withDefaults.bind(null, endpoint) 167 }); 168 } 169 170 const request = withDefaults(endpoint.endpoint, { 171 headers: { 172 "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` 173 } 174 }); 175 176 exports.request = request; 177 //# sourceMappingURL=index.js.map