mirror of
https://github.com/NixOS/nix.git
synced 2025-11-08 19:46:02 +01:00
58 lines
1.5 KiB
Bash
Executable file
58 lines
1.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
# debug:
|
|
# set -x
|
|
|
|
START_REF="${1}"
|
|
END_REF="${2:-upstream/master}"
|
|
|
|
# Get the merge base
|
|
MERGE_BASE=$(git merge-base "$START_REF" "$END_REF")
|
|
unset START_REF
|
|
|
|
# Get date range
|
|
START_DATE=$(git show -s --format=%cI "$MERGE_BASE")
|
|
END_DATE=$(git show -s --format=%cI "$END_REF")
|
|
|
|
echo "Checking PRs merged between $START_DATE and $END_DATE" >&2
|
|
|
|
# Get all commits between merge base and HEAD
|
|
COMMITS=$(git rev-list "$MERGE_BASE..$END_REF")
|
|
|
|
# Convert to set for fast lookup
|
|
declare -A commit_set
|
|
for commit in $COMMITS; do
|
|
commit_set["$commit"]=1
|
|
done
|
|
|
|
# Get the current changelog
|
|
LOG_DONE="$(changelog-d doc/manual/rl-next)"
|
|
is_done(){
|
|
local nr="$1"
|
|
echo "$LOG_DONE" | grep -E "^- .*/pull/$nr)"
|
|
}
|
|
|
|
# Query merged PRs in date range
|
|
gh pr list \
|
|
--repo NixOS/nix \
|
|
--state merged \
|
|
--limit 1000 \
|
|
--json number,title,author,mergeCommit \
|
|
--search "merged:$START_DATE..$END_DATE" | \
|
|
jq -r '.[] | [.number, .mergeCommit.oid, .title, .author.login] | @tsv' | \
|
|
while IFS=$'\t' read -r pr_num merge_commit _title author; do
|
|
# Check if this PR's merge commit is in our branch
|
|
if [[ -n "${commit_set[$merge_commit]:-}" ]]; then
|
|
# Full detail, not suitable for comment due to mass ping and duplicate title
|
|
# echo "- #$pr_num $_title (@$author)"
|
|
echo "- #$pr_num ($author)"
|
|
if is_done "$pr_num"
|
|
then
|
|
echo " - [x] has note"
|
|
else
|
|
echo " - [ ] has note"
|
|
fi
|
|
echo " - [ ] skip"
|
|
fi
|
|
done
|