Skip to content

Commit

Permalink
Fix problematic retransmission of authentication token
Browse files Browse the repository at this point in the history
The retransmission of the authentication token to the server providing
the artifact caused the following errors when using Artifacts v4:

  HTTPError: Response code 400 (Authentication information is not given
  in the correct format. Check the value of Authorization header.)

It looks like the service serving the artifacts does not expect the
authentication header, and therefore complaines about inproper use of
the authentication header.
  • Loading branch information
JojOatXGME committed May 4, 2024
1 parent c40d89d commit 4eb1833
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 40 deletions.
23 changes: 4 additions & 19 deletions dist/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 5 additions & 21 deletions src/utils/github-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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) => {

Check failure on line 57 in src/utils/github-utils.ts

View workflow job for this annotation

GitHub Actions / Build & Test

'updatedOptions' is defined but never used
core.info(`Downloading ${response.headers.location}`)
})
downloadStream.on('downloadProgress', ({transferred}) => {
core.info(`Progress: ${transferred} B`)
})

await asyncStream(downloadStream, fileWriterStream)
} finally {
core.endGroup()
Expand Down

0 comments on commit 4eb1833

Please sign in to comment.