1- #! /usr/ bin/env bash
1+ #! /bin/bash
22
3- echo " ## What's Changed" > changelog.txt
3+ echo -e " ## What's Changed\n " > changelog.txt
44
5+ # Get the creation date of the most recent release
56createdAt=$( gh api graphql -F owner=' EasyEngine' -F name=' easyengine' -f query='
67 query {
78 repository(owner: "EasyEngine", name: "easyengine") {
8- releases(first: 1, orderBy: { field: CREATED_AT, direction: DESC }) {
9+ releases(first: 1, orderBy: {field: CREATED_AT, direction: DESC}) {
910 nodes { tagName, createdAt }
1011 }
1112 }
1213 }
1314' | jq -r ' .data.repository.releases.nodes[0].createdAt' )
1415
16+ # Also get the tag name for verification
17+ tagName=$( gh api graphql -F owner=' EasyEngine' -F name=' easyengine' -f query='
18+ query {
19+ repository(owner: "EasyEngine", name: "easyengine") {
20+ releases(first: 1, orderBy: {field: CREATED_AT, direction: DESC}) {
21+ nodes { tagName, createdAt }
22+ }
23+ }
24+ }
25+ ' | jq -r ' .data.repository.releases.nodes[0].tagName' )
26+
27+ echo " Last release: $tagName ($createdAt )"
28+
29+ # Search for merged PRs since the last release with proper pagination
30+ # Using merged:>$createdAt instead of updated:>$createdAt
1531gh api graphql --paginate -f query="
16- query {
17- search(query: \" org:Easyengine updated :>$createdAt state:closed is:pr \" , type:ISSUE, first: 100) {
32+ query( \$ endCursor: String) {
33+ search(query: \" org:EasyEngine merged :>$createdAt is:pr is:merged \" , type: ISSUE, first: 100, after: \$ endCursor ) {
1834 repositoryCount
35+ pageInfo {
36+ hasNextPage
37+ endCursor
38+ }
1939 edges {
2040 node {
2141 ... on PullRequest {
@@ -25,10 +45,13 @@ query {
2545 author {
2646 login
2747 }
28- updatedAt
48+ mergedAt
49+ repository {
50+ name
51+ }
2952 }
3053 }
3154 }
3255 }
3356}
34- " --template ' {{range .data.search.edges}}{{"* "}}{{.node.title}}{{" "}} {{.node.permalink}}{{" "}}{{.node.state}}{{" @"}}{{.node.author.login}}{{"\n"}}{{end}}' | sed ' /CLOSED/d ' | sed ' s/ MERGED//g ' >> changelog.txt
57+ " --template ' {{range .data.search.edges}}{{"* "}}{{.node.title}} {{.node.permalink}}{{" @"}}{{.node.author.login}}{{"\n"}}{{end}}' >> changelog.txt
0 commit comments