status-react/scripts/list-pull-requests.sh

49 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Fetches pull request refs and prints commits
# for the given range grouped by pull request
REPOSITORY="status-im/status-mobile"
REPOSITORY_URL="https://github.com/$REPOSITORY.git"
PULL_REQUEST_REMOTE="pullRequestRemote"
PULL_REQUEST_URL="https://api.github.com/repos/$REPOSITORY/pulls/"
usage() {
echo "DESCRIPTION"
echo ""
echo " Fetches pull request refs and prints commits"
echo " for the given range grouped by pull request"
echo ""
echo "USAGE"
echo ""
echo " $0 # list all commits"``
echo " $0 [ref1(..ref1)] # lists commits within given range"
echo " $0 -h # show help"
}
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
usage
exit
fi
git fetch $REPOSITORY_URL +refs/pull/*/head:refs/remotes/$PULL_REQUEST_REMOTE/pull/*
git log $1 --pretty="%D, %H" |
awk -v pull_request_url="$PULL_REQUEST_URL" -v pull_request_remote="$PULL_REQUEST_REMOTE" -F ", " '{
for (i = 1; i <= NF; ++i) {
if ($i ~ pull_request_remote "/pull/") {
split($i, temp, "/")
pr = temp[3]
pull_requests[pr] = pull_requests[pr] ", " $NF
sub(/^, /, "", pull_requests[pr])
}
}
}
END {
for (pr in pull_requests) {
print(pr "\t" pull_request_url pr "\t" pull_requests[pr])
}
}'
exit