Use octokit.paginate to get all release assets
Fixes #35, in which assets not on the first page would not be detected and deleted when trying to overwrite, resulting in an "already_exists" error.
This commit is contained in:
parent
e74ff71f7d
commit
bf76499b98
4
dist/index.js
vendored
4
dist/index.js
vendored
@ -2291,8 +2291,8 @@ function upload_to_release(release, file, asset_name, tag, overwrite, octokit) {
|
||||
const file_size = stat.size;
|
||||
const file_bytes = fs.readFileSync(file);
|
||||
// Check for duplicates.
|
||||
const assets = yield octokit.repos.listReleaseAssets(Object.assign(Object.assign({}, repo()), { release_id: release.data.id }));
|
||||
const duplicate_asset = assets.data.find(a => a.name === asset_name);
|
||||
const assets = yield octokit.paginate(octokit.repos.listReleaseAssets, Object.assign(Object.assign({}, repo()), { release_id: release.data.id }));
|
||||
const duplicate_asset = assets.find(a => a.name === asset_name);
|
||||
if (duplicate_asset !== undefined) {
|
||||
if (overwrite) {
|
||||
core.debug(`An asset called ${asset_name} already exists in release ${tag} so we'll overwrite it.`);
|
||||
|
15
src/main.ts
15
src/main.ts
@ -6,7 +6,7 @@ import * as github from '@actions/github'
|
||||
import * as path from 'path'
|
||||
import * as glob from 'glob'
|
||||
|
||||
type RepoAssetsResp = Endpoints['GET /repos/:owner/:repo/releases/:release_id/assets']['response']
|
||||
type RepoAssetsResp = Endpoints['GET /repos/:owner/:repo/releases/:release_id/assets']['response']['data']
|
||||
type ReleaseByTagResp = Endpoints['GET /repos/:owner/:repo/releases/tags/:tag']['response']
|
||||
type CreateReleaseResp = Endpoints['POST /repos/:owner/:repo/releases']['response']
|
||||
type UploadAssetResp = Endpoints['POST /repos/:owner/:repo/releases/:release_id/assets{?name,label}']['response']
|
||||
@ -60,11 +60,14 @@ async function upload_to_release(
|
||||
const file_bytes = fs.readFileSync(file)
|
||||
|
||||
// Check for duplicates.
|
||||
const assets: RepoAssetsResp = await octokit.repos.listReleaseAssets({
|
||||
...repo(),
|
||||
release_id: release.data.id
|
||||
})
|
||||
const duplicate_asset = assets.data.find(a => a.name === asset_name)
|
||||
const assets: RepoAssetsResp = await octokit.paginate(
|
||||
octokit.repos.listReleaseAssets,
|
||||
{
|
||||
...repo(),
|
||||
release_id: release.data.id
|
||||
}
|
||||
)
|
||||
const duplicate_asset = assets.find(a => a.name === asset_name)
|
||||
if (duplicate_asset !== undefined) {
|
||||
if (overwrite) {
|
||||
core.debug(
|
||||
|
Loading…
Reference in New Issue
Block a user