mirror of
https://github.com/softprops/action-gh-release.git
synced 2026-03-16 18:18:54 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
153bb8e044 | ||
|
|
569deb874d |
14
CHANGELOG.md
14
CHANGELOG.md
@@ -1,3 +1,17 @@
|
||||
## 2.6.1
|
||||
|
||||
`2.6.1` is a patch release focused on restoring linked discussion thread creation when
|
||||
`discussion_category_name` is set. It fixes `#764`, where the draft-first publish flow
|
||||
stopped carrying the discussion category through the final publish step.
|
||||
|
||||
If you still hit an issue after upgrading, please open a report with the bug template and include a minimal repro or sanitized workflow snippet where possible.
|
||||
|
||||
## What's Changed
|
||||
|
||||
### Bug fixes 🐛
|
||||
|
||||
* fix: preserve discussion category on publish by @chenrui333 in https://github.com/softprops/action-gh-release/pull/765
|
||||
|
||||
## 2.6.0
|
||||
|
||||
`2.6.0` is a minor release centered on `previous_tag` support for `generate_release_notes`,
|
||||
|
||||
@@ -226,6 +226,64 @@ describe('github', () => {
|
||||
);
|
||||
expect(createRelease.mock.calls[0][0]).not.toHaveProperty('previous_tag_name');
|
||||
});
|
||||
|
||||
it('passes discussion_category_name when finalizing a release', async () => {
|
||||
const updateRelease = vi.fn(async () => ({
|
||||
data: {
|
||||
id: 1,
|
||||
upload_url: 'test',
|
||||
html_url: 'test',
|
||||
tag_name: 'v1.0.0',
|
||||
name: 'v1.0.0',
|
||||
body: 'test',
|
||||
target_commitish: 'main',
|
||||
draft: false,
|
||||
prerelease: false,
|
||||
assets: [],
|
||||
},
|
||||
}));
|
||||
|
||||
const releaser = new GitHubReleaser({
|
||||
rest: {
|
||||
repos: {
|
||||
generateReleaseNotes: vi.fn(),
|
||||
createRelease: vi.fn(),
|
||||
updateRelease,
|
||||
getReleaseByTag: vi.fn(),
|
||||
listReleaseAssets: vi.fn(),
|
||||
deleteReleaseAsset: vi.fn(),
|
||||
deleteRelease: vi.fn(),
|
||||
updateReleaseAsset: vi.fn(),
|
||||
listReleases: {
|
||||
endpoint: {
|
||||
merge: vi.fn(),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
paginate: {
|
||||
iterator: vi.fn(),
|
||||
},
|
||||
request: vi.fn(),
|
||||
} as any);
|
||||
|
||||
await releaser.finalizeRelease({
|
||||
owner: 'owner',
|
||||
repo: 'repo',
|
||||
release_id: 1,
|
||||
make_latest: 'legacy',
|
||||
discussion_category_name: 'Announcements',
|
||||
});
|
||||
|
||||
expect(updateRelease).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
repo: 'repo',
|
||||
release_id: 1,
|
||||
draft: false,
|
||||
make_latest: 'legacy',
|
||||
discussion_category_name: 'Announcements',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('finalizeRelease input_draft behavior', () => {
|
||||
@@ -309,10 +367,49 @@ describe('github', () => {
|
||||
owner: 'owner',
|
||||
repo: 'repo',
|
||||
release_id: release.id,
|
||||
make_latest: undefined,
|
||||
discussion_category_name: undefined,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
it('passes discussion_category_name through when finalizing a draft release', async () => {
|
||||
const finalizeReleaseSpy = vi.fn(async () => ({ data: finalizedRelease }));
|
||||
|
||||
const releaser: Releaser = {
|
||||
getReleaseByTag: () => Promise.reject('Not implemented'),
|
||||
createRelease: () => Promise.reject('Not implemented'),
|
||||
updateRelease: () => Promise.reject('Not implemented'),
|
||||
finalizeRelease: finalizeReleaseSpy,
|
||||
allReleases: async function* () {
|
||||
throw new Error('Not implemented');
|
||||
},
|
||||
listReleaseAssets: () => Promise.reject('Not implemented'),
|
||||
deleteReleaseAsset: () => Promise.reject('Not implemented'),
|
||||
deleteRelease: () => Promise.reject('Not implemented'),
|
||||
updateReleaseAsset: () => Promise.reject('Not implemented'),
|
||||
uploadReleaseAsset: () => Promise.reject('Not implemented'),
|
||||
};
|
||||
|
||||
await finalizeRelease(
|
||||
{
|
||||
...config,
|
||||
input_draft: false,
|
||||
input_discussion_category_name: 'Announcements',
|
||||
},
|
||||
releaser,
|
||||
draftRelease,
|
||||
);
|
||||
|
||||
expect(finalizeReleaseSpy).toHaveBeenCalledWith({
|
||||
owner: 'owner',
|
||||
repo: 'repo',
|
||||
release_id: draftRelease.id,
|
||||
make_latest: undefined,
|
||||
discussion_category_name: 'Announcements',
|
||||
});
|
||||
});
|
||||
|
||||
it('deletes a newly created draft when tag creation is blocked by repository rules', async () => {
|
||||
const finalizeReleaseSpy = vi.fn(async () => {
|
||||
throw {
|
||||
|
||||
4
dist/index.js
vendored
4
dist/index.js
vendored
File diff suppressed because one or more lines are too long
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "action-gh-release",
|
||||
"version": "2.6.0",
|
||||
"version": "2.6.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "action-gh-release",
|
||||
"version": "2.6.0",
|
||||
"version": "2.6.1",
|
||||
"dependencies": {
|
||||
"@actions/core": "^3.0.0",
|
||||
"@actions/github": "^9.0.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "action-gh-release",
|
||||
"version": "2.6.0",
|
||||
"version": "2.6.1",
|
||||
"private": true,
|
||||
"description": "GitHub Action for creating GitHub Releases",
|
||||
"main": "lib/main.js",
|
||||
|
||||
@@ -71,6 +71,7 @@ export interface Releaser {
|
||||
repo: string;
|
||||
release_id: number;
|
||||
make_latest: 'true' | 'false' | 'legacy' | undefined;
|
||||
discussion_category_name: string | undefined;
|
||||
}): Promise<{ data: Release }>;
|
||||
|
||||
allReleases(params: { owner: string; repo: string }): AsyncIterable<{ data: Release[] }>;
|
||||
@@ -181,6 +182,7 @@ export class GitHubReleaser implements Releaser {
|
||||
repo: string;
|
||||
release_id: number;
|
||||
make_latest: 'true' | 'false' | 'legacy' | undefined;
|
||||
discussion_category_name: string | undefined;
|
||||
}) {
|
||||
return await this.github.rest.repos.updateRelease({
|
||||
owner: params.owner,
|
||||
@@ -188,6 +190,7 @@ export class GitHubReleaser implements Releaser {
|
||||
release_id: params.release_id,
|
||||
draft: false,
|
||||
make_latest: params.make_latest,
|
||||
discussion_category_name: params.discussion_category_name,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -641,6 +644,7 @@ export const finalizeRelease = async (
|
||||
repo,
|
||||
release_id: release.id,
|
||||
make_latest: config.input_make_latest,
|
||||
discussion_category_name: config.input_discussion_category_name,
|
||||
});
|
||||
|
||||
return data;
|
||||
|
||||
Reference in New Issue
Block a user