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_size = stat.size;
|
||||||
const file_bytes = fs.readFileSync(file);
|
const file_bytes = fs.readFileSync(file);
|
||||||
// Check for duplicates.
|
// Check for duplicates.
|
||||||
const assets = yield octokit.repos.listReleaseAssets(Object.assign(Object.assign({}, repo()), { release_id: release.data.id }));
|
const assets = yield octokit.paginate(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 duplicate_asset = assets.find(a => a.name === asset_name);
|
||||||
if (duplicate_asset !== undefined) {
|
if (duplicate_asset !== undefined) {
|
||||||
if (overwrite) {
|
if (overwrite) {
|
||||||
core.debug(`An asset called ${asset_name} already exists in release ${tag} so we'll overwrite it.`);
|
core.debug(`An asset called ${asset_name} already exists in release ${tag} so we'll overwrite it.`);
|
||||||
|
11
src/main.ts
11
src/main.ts
@ -6,7 +6,7 @@ import * as github from '@actions/github'
|
|||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
import * as glob from 'glob'
|
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 ReleaseByTagResp = Endpoints['GET /repos/:owner/:repo/releases/tags/:tag']['response']
|
||||||
type CreateReleaseResp = Endpoints['POST /repos/:owner/:repo/releases']['response']
|
type CreateReleaseResp = Endpoints['POST /repos/:owner/:repo/releases']['response']
|
||||||
type UploadAssetResp = Endpoints['POST /repos/:owner/:repo/releases/:release_id/assets{?name,label}']['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)
|
const file_bytes = fs.readFileSync(file)
|
||||||
|
|
||||||
// Check for duplicates.
|
// Check for duplicates.
|
||||||
const assets: RepoAssetsResp = await octokit.repos.listReleaseAssets({
|
const assets: RepoAssetsResp = await octokit.paginate(
|
||||||
|
octokit.repos.listReleaseAssets,
|
||||||
|
{
|
||||||
...repo(),
|
...repo(),
|
||||||
release_id: release.data.id
|
release_id: release.data.id
|
||||||
})
|
}
|
||||||
const duplicate_asset = assets.data.find(a => a.name === asset_name)
|
)
|
||||||
|
const duplicate_asset = assets.find(a => a.name === asset_name)
|
||||||
if (duplicate_asset !== undefined) {
|
if (duplicate_asset !== undefined) {
|
||||||
if (overwrite) {
|
if (overwrite) {
|
||||||
core.debug(
|
core.debug(
|
||||||
|
Loading…
Reference in New Issue
Block a user