From f2e35e153c5fa6aad95301aba2ba304994b5ff6a Mon Sep 17 00:00:00 2001 From: Stefan Holderbach Date: Wed, 23 Aug 2023 00:42:15 +0200 Subject: [PATCH] Script to generate the excerpt of the GH release (#566) * Script to generate the excerpt of the GH release This will add a list of PR authors so they will be shown with a profile image at the end of the GH release. * Update make_release/release-note/gh-release-excerpt Co-authored-by: Antoine Stevan <44101798+amtoine@users.noreply.github.com> * Sort authors, feeks default release cycle --------- Co-authored-by: Antoine Stevan <44101798+amtoine@users.noreply.github.com> --- make_release/release-note/gh-release-excerpt | 42 ++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 make_release/release-note/gh-release-excerpt diff --git a/make_release/release-note/gh-release-excerpt b/make_release/release-note/gh-release-excerpt new file mode 100755 index 0000000..b9297cf --- /dev/null +++ b/make_release/release-note/gh-release-excerpt @@ -0,0 +1,42 @@ +#!/usr/bin/env nu + + +# Prepare the GitHub release text +def main [ + versionname: string # The version we release now + bloglink: string # The link to the blogpost + date?: datetime # the date of the last release (default to 3 weeks ago, excluded) +] { + let date = ( + if $date == null { (date now) - 4wk + 1day } else { $date } + | format date "%Y-%m-%d" + ) + + let repo = "nushell/nushell" + let query = $"merged:>($date)" + + let prs = ( + gh --repo $repo pr list + --state merged + --limit (inf | into int) + --json author,title,number,mergedAt,url + --search $query + | from json + | sort-by mergedAt --reverse + | update author { get login } + ) + + let authors = $prs.author | uniq | sort -i + + let author_string = ($authors | each {|name| $"@($name)"} | str join ", " ) + + let release_text = [ + $"This is the ($versionname) release of Nushell. You can learn more about this release here: ($bloglink)", + "", + "For convenience, we are providing full builds for Windows, Linux, and macOS. Be sure you have the requirements to enable all capabilities: https://www.nushell.sh/book/installation.html#dependencies", + "", + $"This release was made possible by PR contributions from ($author_string)" + ] + + $release_text | str join "\n" +}