@vantaloom/cli 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/cli.mjs +23 -2
package/package.json
CHANGED
package/src/cli.mjs
CHANGED
|
@@ -261,7 +261,7 @@ async function syncFromRelease(options, action) {
|
|
|
261
261
|
}
|
|
262
262
|
|
|
263
263
|
async function downloadReleaseAsset({ repo, releaseTag, assetName, target, token }) {
|
|
264
|
-
const
|
|
264
|
+
const releaseUrl = `https://api.github.com/repos/${repo}/releases/tags/${releaseTag}`
|
|
265
265
|
const headers = {
|
|
266
266
|
"User-Agent": "vantaloom-cli",
|
|
267
267
|
}
|
|
@@ -270,7 +270,28 @@ async function downloadReleaseAsset({ repo, releaseTag, assetName, target, token
|
|
|
270
270
|
headers.Authorization = `Bearer ${githubToken}`
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
-
const
|
|
273
|
+
const releaseResponse = await fetch(releaseUrl, { headers })
|
|
274
|
+
if (!releaseResponse.ok) {
|
|
275
|
+
const detail = await releaseResponse.text().catch(() => "")
|
|
276
|
+
const authHint = releaseResponse.status === 404 || releaseResponse.status === 403
|
|
277
|
+
? " If the repository is private, set VANTALOOM_GITHUB_TOKEN to a GitHub token that can read releases."
|
|
278
|
+
: ""
|
|
279
|
+
throw new Error(`failed to inspect ${repo}@${releaseTag}: HTTP ${releaseResponse.status}.${authHint}${detail ? ` ${detail.slice(0, 200)}` : ""}`)
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
const release = await releaseResponse.json()
|
|
283
|
+
const asset = release.assets?.find((asset) => asset.name === assetName)
|
|
284
|
+
if (!asset) {
|
|
285
|
+
const names = release.assets?.map((asset) => asset.name).join(", ") || "none"
|
|
286
|
+
throw new Error(`missing release asset ${assetName} in ${repo}@${releaseTag}; available assets: ${names}`)
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
const response = await fetch(asset.url, {
|
|
290
|
+
headers: {
|
|
291
|
+
...headers,
|
|
292
|
+
Accept: "application/octet-stream",
|
|
293
|
+
},
|
|
294
|
+
})
|
|
274
295
|
if (!response.ok) {
|
|
275
296
|
const detail = await response.text().catch(() => "")
|
|
276
297
|
const authHint = response.status === 404 || response.status === 403
|