3 Commits

Author SHA1 Message Date
Sven-Hendrik Haase
483c1e56f9 This is 2.2.1 2020-12-16 05:19:13 +01:00
Sven-Hendrik Haase
1899a6bd0d Merge pull request #36 from djpohly/paginate-assets
Use octokit.paginate to get all release assets
2020-12-16 05:12:32 +01:00
Devin J. Pohly
bf76499b98 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.
2020-12-02 16:25:13 -06:00
4 changed files with 15 additions and 9 deletions

View File

@@ -1,5 +1,8 @@
# Changelog
## [2.2.1] - 2020-12-16
- Added support for the GitHub pagination API for repositories with many releases [#36](https://github.com/svenstaro/upload-release-action/pull/36) (thanks @djpohly)
## [2.2.0] - 2020-10-07
- Add support for ceating a new release in a foreign repository [#25](https://github.com/svenstaro/upload-release-action/pull/25) (thanks @kittaakos)
- Upgrade all deps

4
dist/index.js vendored
View File

@@ -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.`);

View File

@@ -1,6 +1,6 @@
{
"name": "upload-release-action",
"version": "2.2.0",
"version": "2.2.1",
"private": true,
"description": "Upload files to a GitHub release",
"main": "lib/main.js",

View File

@@ -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({
const assets: RepoAssetsResp = await octokit.paginate(
octokit.repos.listReleaseAssets,
{
...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 (overwrite) {
core.debug(