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" +}