1
- #! /usr/ bin/env bash
1
+ #! /bin/bash
2
2
3
- echo " ## What's Changed" > changelog.txt
3
+ echo -e " ## What's Changed\n " > changelog.txt
4
4
5
+ # Get the creation date of the most recent release
5
6
createdAt=$( gh api graphql -F owner=' EasyEngine' -F name=' easyengine' -f query='
6
7
query {
7
8
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}) {
9
10
nodes { tagName, createdAt }
10
11
}
11
12
}
12
13
}
13
14
' | jq -r ' .data.repository.releases.nodes[0].createdAt' )
14
15
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
15
31
gh 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 ) {
18
34
repositoryCount
35
+ pageInfo {
36
+ hasNextPage
37
+ endCursor
38
+ }
19
39
edges {
20
40
node {
21
41
... on PullRequest {
@@ -25,10 +45,13 @@ query {
25
45
author {
26
46
login
27
47
}
28
- updatedAt
48
+ mergedAt
49
+ repository {
50
+ name
51
+ }
29
52
}
30
53
}
31
54
}
32
55
}
33
56
}
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