@@ -27,13 +27,41 @@ jobs:
27
27
- name : Build Plugin with Gradle
28
28
run : ./gradlew buildPlugin
29
29
30
+ - name : Get Previous Tag
31
+ id : previous_tag
32
+ uses : actions/github-script@v6
33
+ with :
34
+ script : |
35
+ const { data: tags } = await github.rest.repos.listTags({
36
+ owner: context.repo.owner,
37
+ repo: context.repo.repo,
38
+ per_page: 2,
39
+ });
40
+ if (tags.length < 2) {
41
+ core.setFailed("Not enough tags to generate release notes.");
42
+ } else {
43
+ core.setOutput("previous_tag", tags[1].name);
44
+ }
45
+
30
46
- name : Generate Release Notes
31
47
id : generate_notes
32
- uses : actions/generate-release-notes@v2
48
+ uses : actions/github-script@v6
33
49
with :
34
- owner : ${{ github.repository_owner }}
35
- repo : ${{ github.event.repository.name }}
36
- tag_name : ${{ github.event.release.tag_name }}
50
+ script : |
51
+ const previousTag = "${{ steps.previous_tag.outputs.previous_tag }}";
52
+ const currentTag = "${{ github.event.release.tag_name }}";
53
+ const { data: commits } = await github.rest.repos.compareCommits({
54
+ owner: context.repo.owner,
55
+ repo: context.repo.repo,
56
+ base: previousTag,
57
+ head: currentTag,
58
+ });
59
+
60
+ let releaseNotes = '### Changelog\n\n';
61
+ commits.commits.forEach(commit => {
62
+ releaseNotes += `- ${commit.commit.message}\n`;
63
+ });
64
+ core.setOutput("notes", releaseNotes);
37
65
38
66
- name : Update Release with Notes
39
67
uses : actions/github-script@v6
0 commit comments