diff --git a/dist/index.js b/dist/index.js index dee44688..2d82db39 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2151,26 +2151,11 @@ function downloadArtifact(octokit, artifactId, fileName, token) { const headers = { Authorization: `Bearer ${token}` }; - const resp = yield (0, got_1.default)(req.url, { - headers, - followRedirect: false - }); - core.info(`Fetch artifact URL: ${resp.statusCode} ${resp.statusMessage}`); - if (resp.statusCode !== 302) { - throw new Error('Fetch artifact URL failed: received unexpected status code'); - } - const url = resp.headers.location; - if (url === undefined) { - const receivedHeaders = Object.keys(resp.headers); - core.info(`Received headers: ${receivedHeaders.join(', ')}`); - throw new Error('Location header was not found in API response'); - } - if (typeof url !== 'string') { - throw new Error(`Location header has unexpected value: ${url}`); - } - const downloadStream = got_1.default.stream(url, { headers }); + const downloadStream = got_1.default.stream(req.url, { headers }); const fileWriterStream = (0, fs_1.createWriteStream)(fileName); - core.info(`Downloading ${url}`); + downloadStream.on('redirect', (response, updatedOptions) => { + core.info(`Downloading ${response.headers.location}`); + }); downloadStream.on('downloadProgress', ({ transferred }) => { core.info(`Progress: ${transferred} B`); }); diff --git a/src/utils/github-utils.ts b/src/utils/github-utils.ts index 1d4add7d..2e2fd330 100644 --- a/src/utils/github-utils.ts +++ b/src/utils/github-utils.ts @@ -50,33 +50,17 @@ export async function downloadArtifact( const headers = { Authorization: `Bearer ${token}` } - const resp = await got(req.url, { - headers, - followRedirect: false - }) - - core.info(`Fetch artifact URL: ${resp.statusCode} ${resp.statusMessage}`) - if (resp.statusCode !== 302) { - throw new Error('Fetch artifact URL failed: received unexpected status code') - } - - const url = resp.headers.location - if (url === undefined) { - const receivedHeaders = Object.keys(resp.headers) - core.info(`Received headers: ${receivedHeaders.join(', ')}`) - throw new Error('Location header was not found in API response') - } - if (typeof url !== 'string') { - throw new Error(`Location header has unexpected value: ${url}`) - } - const downloadStream = got.stream(url, {headers}) + const downloadStream = got.stream(req.url, {headers}) const fileWriterStream = createWriteStream(fileName) - core.info(`Downloading ${url}`) + downloadStream.on('redirect', (response, updatedOptions) => { + core.info(`Downloading ${response.headers.location}`) + }) downloadStream.on('downloadProgress', ({transferred}) => { core.info(`Progress: ${transferred} B`) }) + await asyncStream(downloadStream, fileWriterStream) } finally { core.endGroup()