summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/util/fetch_prs_between.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/util/fetch_prs_between.sh')
-rwxr-xr-xsrc/tools/clippy/util/fetch_prs_between.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/tools/clippy/util/fetch_prs_between.sh b/src/tools/clippy/util/fetch_prs_between.sh
new file mode 100755
index 000000000..6865abf97
--- /dev/null
+++ b/src/tools/clippy/util/fetch_prs_between.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# Fetches the merge commits between two git commits and prints the PR URL
+# together with the full commit message
+#
+# If you want to use this to update the Clippy changelog, be sure to manually
+# exclude the non-user facing changes like 'rustup' PRs, typo fixes, etc.
+
+first=$1
+last=$2
+
+IFS='
+'
+for pr in $(git log --oneline --grep "Merge #" --grep "Merge pull request" --grep "Auto merge of" --grep "Rollup merge of" "$first...$last" | sort -rn | uniq); do
+ id=$(echo "$pr" | rg -o '#[0-9]{3,5}' | cut -c 2-)
+ commit=$(echo "$pr" | cut -d' ' -f 1)
+ message=$(git --no-pager show --pretty=medium "$commit")
+ if [[ -n $(echo "$message" | rg "^[\s]{4}changelog: [nN]one\.*$") ]]; then
+ continue
+ fi
+
+ echo "URL: https://github.com/rust-lang/rust-clippy/pull/$id"
+ echo "Markdown URL: [#$id](https://github.com/rust-lang/rust-clippy/pull/$id)"
+ echo "$message"
+ echo "---------------------------------------------------------"
+ echo
+done