diff --git a/__tests__/ghcr-client.test.ts b/__tests__/ghcr-client.test.ts
index 07c7a57..acff01b 100644
--- a/__tests__/ghcr-client.test.ts
+++ b/__tests__/ghcr-client.test.ts
@@ -25,6 +25,9 @@ const tarFile: fsHelper.FileMetadata = {
const headMockNoExistingBlobs = (): object => {
// Simulate none of the blobs existing currently
return {
+ text() {
+ return 'Not Found'
+ },
status: 404
}
}
@@ -47,6 +50,9 @@ const headMockSomeExistingBlobs = (): object => {
} else {
// report all others are missing
return {
+ text() {
+ return 'Not Found'
+ },
status: 404
}
}
@@ -54,6 +60,9 @@ const headMockSomeExistingBlobs = (): object => {
const headMockFailure = (): object => {
return {
+ text() {
+ return 'Failed the head request'
+ },
status: 503
}
}
@@ -75,6 +84,9 @@ const postMockSuccessfulIniationForAllBlobs = (): object => {
const postMockFailure = (): object => {
// Simulate failed initiation of uploads
return {
+ text() {
+ return 'Failed the post request'
+ },
status: 503
}
}
@@ -110,6 +122,9 @@ const putMockSuccessfulBlobUpload = (url: string): object => {
const putMockFailure = (): object => {
// Simulate fails upload of all blobs & manifest
return {
+ text() {
+ return 'Failed the put request'
+ },
status: 500
}
}
@@ -118,6 +133,9 @@ const putMockFailureManifestUpload = (url: string): object => {
// Simulate unsuccessful upload of all blobs & then the manifest
if (url.includes('manifest')) {
return {
+ text() {
+ return 'Failed the put request'
+ },
status: 500
}
}
diff --git a/badges/coverage.svg b/badges/coverage.svg
index e9318f9..369b184 100644
--- a/badges/coverage.svg
+++ b/badges/coverage.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dist/index.js b/dist/index.js
index 3cc7b96..04f9bec 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -104749,7 +104749,8 @@ async function uploadLayer(layer, file, registryURL, checkBlobEndpoint, uploadBl
return;
}
if (checkExistsResponse.status !== 404) {
- throw new Error(`Unexpected response from blob check for layer ${layer.digest}: ${checkExistsResponse.status} ${checkExistsResponse.statusText}`);
+ const responseBody = await checkExistsResponse.text();
+ throw new Error(`Unexpected response from blob check for layer ${layer.digest}: ${checkExistsResponse.status}. Response Body: ${responseBody}.`);
}
core.info(`Uploading layer ${layer.digest}.`);
const initiateUploadResponse = await fetchWithDebug(uploadBlobEndpoint, {
@@ -104760,8 +104761,9 @@ async function uploadLayer(layer, file, registryURL, checkBlobEndpoint, uploadBl
body: JSON.stringify(layer)
});
if (initiateUploadResponse.status !== 202) {
- core.error(`Unexpected response from upload post ${uploadBlobEndpoint}: ${initiateUploadResponse.status}`);
- throw new Error(`Unexpected response from POST upload ${initiateUploadResponse.status}`);
+ const responseBody = await initiateUploadResponse.text();
+ core.error(`Unexpected response from upload post ${uploadBlobEndpoint}: ${initiateUploadResponse.status}. Response Body: ${responseBody}.`);
+ throw new Error(`Unexpected response from POST upload ${initiateUploadResponse.status}. Response Body: ${responseBody}.`);
}
const locationResponseHeader = initiateUploadResponse.headers.get('location');
if (locationResponseHeader === undefined) {
@@ -104788,7 +104790,8 @@ async function uploadLayer(layer, file, registryURL, checkBlobEndpoint, uploadBl
body: data
});
if (putResponse.status !== 201) {
- throw new Error(`Unexpected response from PUT upload ${putResponse.status} for layer ${layer.digest}`);
+ const responseBody = await putResponse.text();
+ throw new Error(`Unexpected response from PUT upload ${putResponse.status} for layer ${layer.digest}. Response Body: ${responseBody}.`);
}
}
// Uploads the manifest and returns the digest returned by GHCR
@@ -104803,7 +104806,8 @@ async function uploadManifest(manifestJSON, manifestEndpoint, b64Token) {
body: manifestJSON
});
if (putResponse.status !== 201) {
- throw new Error(`Unexpected response from PUT manifest ${putResponse.status}`);
+ const responseBody = await putResponse.text();
+ throw new Error(`Unexpected response from PUT manifest ${putResponse.status}. Response Body: ${responseBody}.`);
}
const digestResponseHeader = putResponse.headers.get('docker-content-digest');
if (digestResponseHeader === undefined || digestResponseHeader === null) {
diff --git a/src/ghcr-client.ts b/src/ghcr-client.ts
index 6aa4c0e..47536df 100644
--- a/src/ghcr-client.ts
+++ b/src/ghcr-client.ts
@@ -107,8 +107,10 @@ async function uploadLayer(
}
if (checkExistsResponse.status !== 404) {
+ const responseBody = await checkExistsResponse.text()
+
throw new Error(
- `Unexpected response from blob check for layer ${layer.digest}: ${checkExistsResponse.status} ${checkExistsResponse.statusText}`
+ `Unexpected response from blob check for layer ${layer.digest}: ${checkExistsResponse.status}. Response Body: ${responseBody}.`
)
}
@@ -123,11 +125,13 @@ async function uploadLayer(
})
if (initiateUploadResponse.status !== 202) {
+ const responseBody = await initiateUploadResponse.text()
+
core.error(
- `Unexpected response from upload post ${uploadBlobEndpoint}: ${initiateUploadResponse.status}`
+ `Unexpected response from upload post ${uploadBlobEndpoint}: ${initiateUploadResponse.status}. Response Body: ${responseBody}.`
)
throw new Error(
- `Unexpected response from POST upload ${initiateUploadResponse.status}`
+ `Unexpected response from POST upload ${initiateUploadResponse.status}. Response Body: ${responseBody}.`
)
}
@@ -161,8 +165,10 @@ async function uploadLayer(
})
if (putResponse.status !== 201) {
+ const responseBody = await putResponse.text()
+
throw new Error(
- `Unexpected response from PUT upload ${putResponse.status} for layer ${layer.digest}`
+ `Unexpected response from PUT upload ${putResponse.status} for layer ${layer.digest}. Response Body: ${responseBody}.`
)
}
}
@@ -185,8 +191,10 @@ async function uploadManifest(
})
if (putResponse.status !== 201) {
+ const responseBody = await putResponse.text()
+
throw new Error(
- `Unexpected response from PUT manifest ${putResponse.status}`
+ `Unexpected response from PUT manifest ${putResponse.status}. Response Body: ${responseBody}.`
)
}