From 351691f118b8d89480d2502869b69d5e9fb0f1dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1dn=C3=ADk?= Date: Tue, 5 Mar 2024 22:27:30 +0200 Subject: [PATCH] Allow listing merged PRs by milestone (#773) Also changes `date?` parameter to `--date` and slight code refactoring --- make_release/release-note/list-merged-prs | 33 +++++++++++++++++------ 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/make_release/release-note/list-merged-prs b/make_release/release-note/list-merged-prs index e49149e..5d2010b 100755 --- a/make_release/release-note/list-merged-prs +++ b/make_release/release-note/list-merged-prs @@ -11,21 +11,38 @@ def md-link [ # list all merged PRs since last release export def main [ repo: string # the name of the repo, e.g. `nushell/nushell` - date?: datetime # the date of the last release (default to 4 weeks ago, excluded) + --date: datetime # the date of the last release (default to 4 weeks ago, excluded, if no milestone is set) + --milestone: string # search PRs by milestone --label: string # the label to filter the PRs by, e.g. `good-first-issue` --pretty # pretty-print for the MarkDown release not --no-author # do not group the contributions by author ] { - let date = $date | default ((date now) - 4wk) | format date "%Y-%m-%d" + mut query_parts = [] - let since = (date now | format date %F | into datetime) - ($date | into datetime) - log info $"listing PRs in ($repo) since ($date) \(($since) ago\)" - - let query = if $label == null { - $"merged:>($date)" + let date = if $date == null and $milestone == null { + (date now) - 4wk } else { - $"merged:>($date) label:($label)" + $date } + | format date "%Y-%m-%d" + + if $date != null { + let since = (date now | format date %F | into datetime) - ($date | into datetime) + log info $"listing PRs in ($repo) since ($date) \(($since) ago\)" + $query_parts ++= [ $"merged:>($date)" ] + } + + if $milestone != null { + log info $"listing PRs in milestone ($milestone)" + $query_parts ++= [ $'milestone:"($milestone)"' ] + } + + if $label != null { + log info $"listing PRs with label ($label)" + $query_parts ++= [ $'label:($label)' ] + } + + let query = $query_parts | str join ' ' let prs = ( gh --repo $repo pr list