Compare commits

..

No commits in common. "master" and "v2.4.1" have entirely different histories.

7 changed files with 669 additions and 572 deletions

View file

@ -10,7 +10,7 @@ jobs:
steps: steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v4
with: with:
node-version-file: ".tool-versions" node-version-file: ".tool-versions"
cache: "npm" cache: "npm"

View file

@ -1 +1 @@
nodejs 24.11.0 nodejs 24.2.0

View file

@ -1,15 +1,3 @@
## 2.4.2
## What's Changed
### Exciting New Features 🎉
* feat: Ensure generated release notes cannot be over 125000 characters by @BeryJu in https://github.com/softprops/action-gh-release/pull/684
### Other Changes 🔄
- dependency updates
## 2.4.1 ## 2.4.1
## What's Changed ## What's Changed

2
dist/index.js vendored

File diff suppressed because one or more lines are too long

1165
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
{ {
"name": "action-gh-release", "name": "action-gh-release",
"version": "2.4.2", "version": "2.4.1",
"private": true, "private": true,
"description": "GitHub Action for creating GitHub Releases", "description": "GitHub Action for creating GitHub Releases",
"main": "lib/main.js", "main": "lib/main.js",
@ -24,21 +24,21 @@
"dependencies": { "dependencies": {
"@actions/core": "^1.11.1", "@actions/core": "^1.11.1",
"@actions/github": "^6.0.1", "@actions/github": "^6.0.1",
"@octokit/plugin-retry": "^8.0.3", "@octokit/plugin-retry": "^8.0.2",
"@octokit/plugin-throttling": "^11.0.3", "@octokit/plugin-throttling": "^11.0.2",
"glob": "^11.0.3", "glob": "^11.0.3",
"mime-types": "^3.0.1" "mime-types": "^3.0.1"
}, },
"devDependencies": { "devDependencies": {
"@types/glob": "^9.0.0", "@types/glob": "^9.0.0",
"@types/mime-types": "^3.0.1", "@types/mime-types": "^3.0.1",
"@types/node": "^20.19.24", "@types/node": "^20.19.19",
"@vercel/ncc": "^0.38.4", "@vercel/ncc": "^0.38.4",
"@vitest/coverage-v8": "^4.0.6", "@vitest/coverage-v8": "^3.2.4",
"prettier": "3.6.2", "prettier": "3.6.2",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"typescript": "^5.9.3", "typescript": "^5.9.3",
"typescript-formatter": "^7.2.2", "typescript-formatter": "^7.2.2",
"vitest": "^4.0.4" "vitest": "^3.1.4"
} }
} }

View file

@ -75,27 +75,7 @@ export class GitHubReleaser implements Releaser {
return this.github.rest.repos.getReleaseByTag(params); return this.github.rest.repos.getReleaseByTag(params);
} }
async getReleaseNotes(params: { createRelease(params: {
owner: string;
repo: string;
tag_name: string;
target_commitish: string | undefined;
}): Promise<{
data: {
name: string;
body: string;
};
}> {
return await this.github.rest.repos.generateReleaseNotes(params);
}
truncateReleaseNotes(input: string): string {
// release notes can be a maximum of 125000 characters
const githubNotesMaxCharLength = 125000;
return input.substring(0, githubNotesMaxCharLength - 1);
}
async createRelease(params: {
owner: string; owner: string;
repo: string; repo: string;
tag_name: string; tag_name: string;
@ -114,20 +94,11 @@ export class GitHubReleaser implements Releaser {
) { ) {
params.make_latest = undefined; params.make_latest = undefined;
} }
if (params.generate_release_notes) {
const releaseNotes = await this.getReleaseNotes(params);
params.generate_release_notes = false;
if (params.body) {
params.body = `${params.body}\n\n${releaseNotes.data.body}`;
} else {
params.body = releaseNotes.data.body;
}
}
params.body = params.body ? this.truncateReleaseNotes(params.body) : undefined;
return this.github.rest.repos.createRelease(params); return this.github.rest.repos.createRelease(params);
} }
async updateRelease(params: { updateRelease(params: {
owner: string; owner: string;
repo: string; repo: string;
release_id: number; release_id: number;
@ -147,16 +118,7 @@ export class GitHubReleaser implements Releaser {
) { ) {
params.make_latest = undefined; params.make_latest = undefined;
} }
if (params.generate_release_notes) {
const releaseNotes = await this.getReleaseNotes(params);
params.generate_release_notes = false;
if (params.body) {
params.body = `${params.body}\n\n${releaseNotes.data.body}`;
} else {
params.body = releaseNotes.data.body;
}
}
params.body = params.body ? this.truncateReleaseNotes(params.body) : undefined;
return this.github.rest.repos.updateRelease(params); return this.github.rest.repos.updateRelease(params);
} }