mirror of
https://github.com/softprops/action-gh-release.git
synced 2025-11-23 11:50:51 +00:00
fix: handle GitHub API limit when generating release notes
- Added error handling for cases where the GitHub API exceeds the 10,000 commit limit while generating release notes. - Implemented a warning message to inform users when release notes cannot be generated due to this limit, allowing the process to continue without them. - Ensured that other errors are re-thrown for proper handling.
This commit is contained in:
parent
ba1b4c0361
commit
8b7c9633c7
1 changed files with 44 additions and 12 deletions
|
|
@ -103,6 +103,7 @@ export class GitHubReleaser implements Releaser {
|
|||
params.make_latest = undefined;
|
||||
}
|
||||
if (params.generate_release_notes) {
|
||||
try {
|
||||
const releaseNotes = await this.getReleaseNotes(params);
|
||||
params.generate_release_notes = false;
|
||||
if (params.body) {
|
||||
|
|
@ -110,6 +111,21 @@ export class GitHubReleaser implements Releaser {
|
|||
} else {
|
||||
params.body = releaseNotes.data.body;
|
||||
}
|
||||
} catch (error: any) {
|
||||
// Handle GitHub API error when there are more than 10,000 commits
|
||||
const status = error?.status || error?.response?.status;
|
||||
const message = error?.message || error?.response?.data?.message || '';
|
||||
if (status === 422 && (message.includes('10000') || message.includes('10000 results'))) {
|
||||
console.warn(
|
||||
`⚠️ Unable to generate release notes: GitHub API limit exceeded (more than 10,000 commits since last release). Proceeding without generated release notes.`,
|
||||
);
|
||||
params.generate_release_notes = false;
|
||||
// Continue with existing body or leave it empty
|
||||
} else {
|
||||
// Re-throw other errors
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}
|
||||
params.body = params.body ? this.truncateReleaseNotes(params.body) : undefined;
|
||||
return this.github.rest.repos.createRelease(params);
|
||||
|
|
@ -136,6 +152,7 @@ export class GitHubReleaser implements Releaser {
|
|||
params.make_latest = undefined;
|
||||
}
|
||||
if (params.generate_release_notes) {
|
||||
try {
|
||||
const releaseNotes = await this.getReleaseNotes(params);
|
||||
params.generate_release_notes = false;
|
||||
if (params.body) {
|
||||
|
|
@ -143,6 +160,21 @@ export class GitHubReleaser implements Releaser {
|
|||
} else {
|
||||
params.body = releaseNotes.data.body;
|
||||
}
|
||||
} catch (error: any) {
|
||||
// Handle GitHub API error when there are more than 10,000 commits
|
||||
const status = error?.status || error?.response?.status;
|
||||
const message = error?.message || error?.response?.data?.message || '';
|
||||
if (status === 422 && (message.includes('10000') || message.includes('10000 results'))) {
|
||||
console.warn(
|
||||
`⚠️ Unable to generate release notes: GitHub API limit exceeded (more than 10,000 commits since last release). Proceeding without generated release notes.`,
|
||||
);
|
||||
params.generate_release_notes = false;
|
||||
// Continue with existing body or leave it empty
|
||||
} else {
|
||||
// Re-throw other errors
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}
|
||||
params.body = params.body ? this.truncateReleaseNotes(params.body) : undefined;
|
||||
return this.github.rest.repos.updateRelease(params);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue