From de80a23b3aeac64204d9e65e8c65e8854d906575 Mon Sep 17 00:00:00 2001 From: Edd Mann Date: Fri, 25 Feb 2022 09:14:57 +0000 Subject: [PATCH] Cap evaluated release limit at 1000 GitHub API currently returns a 500 HTTP response if you attempt to fetch over 1000 releases. --- dist/index.js | 13 ++++++++++++- lib/releases.js | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/dist/index.js b/dist/index.js index da8b64ac7..eed174c96 100644 --- a/dist/index.js +++ b/dist/index.js @@ -129060,17 +129060,28 @@ const sortReleases = (releases) => { } } +// GitHub API currently returns a 500 HTTP response if you attempt to fetch over 1000 releases. +const RELEASE_COUNT_LIMIT = 1000 + const findReleases = async ({ context, targetCommitish, filterByCommitish, }) => { + let releaseCount = 0 let releases = await context.octokit.paginate( context.octokit.repos.listReleases.endpoint.merge( context.repo({ per_page: 100, }) - ) + ), + (response, done) => { + releaseCount += response.data.length + if (releaseCount >= RELEASE_COUNT_LIMIT) { + done() + } + return response.data + } ) log({ context, message: `Found ${releases.length} releases` }) diff --git a/lib/releases.js b/lib/releases.js index 4e501db95..009c2747d 100644 --- a/lib/releases.js +++ b/lib/releases.js @@ -17,17 +17,28 @@ const sortReleases = (releases) => { } } +// GitHub API currently returns a 500 HTTP response if you attempt to fetch over 1000 releases. +const RELEASE_COUNT_LIMIT = 1000 + const findReleases = async ({ context, targetCommitish, filterByCommitish, }) => { + let releaseCount = 0 let releases = await context.octokit.paginate( context.octokit.repos.listReleases.endpoint.merge( context.repo({ per_page: 100, }) - ) + ), + (response, done) => { + releaseCount += response.data.length + if (releaseCount >= RELEASE_COUNT_LIMIT) { + done() + } + return response.data + } ) log({ context, message: `Found ${releases.length} releases` })