Added renovate-prs
Signed-off-by: Marcus Noble <github@marcusnoble.co.uk>
This commit is contained in:
parent
45c9d5afcb
commit
6b44bf8ecc
82
home/.bin/renovate-prs
Executable file
82
home/.bin/renovate-prs
Executable file
@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source .utils
|
||||
|
||||
set -e
|
||||
RENOVATE_USER="29139614"
|
||||
MERGE=false
|
||||
|
||||
print_usage() {
|
||||
blue "renovate-prs - List all Renovate PRs and batch approve"
|
||||
echo " "
|
||||
underline "Usage:"
|
||||
echo "renovate-prs [options]"
|
||||
echo " "
|
||||
underline "Options:"
|
||||
echo "-h, --help show this help text"
|
||||
echo "-m, --merge merge PRs after approving"
|
||||
}
|
||||
|
||||
while test $# -gt 0; do
|
||||
case "$1" in
|
||||
-m|--merge)
|
||||
shift
|
||||
MERGE=true
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
print_usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
PULLS=$(curl --silent -L -H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${GITHUB_TOKEN}" -H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/search/issues?q=is%3Apr%20is%3Aopen%20archived%3Afalse%20sort%3Aupdated-desc%20review-requested%3AAverageMarcus%20renovate" \
|
||||
| jq -r -c ".items[] | select(.user.id == ${RENOVATE_USER} and .draft == false) | @base64")
|
||||
|
||||
if [[ "${PULLS}" == "" ]]; then
|
||||
blue "No Renovate PRs pending"
|
||||
else
|
||||
|
||||
for PR in ${PULLS}; do
|
||||
PR=$(echo ${PR} | base64 -d)
|
||||
NUMBER=$(echo ${PR} | jq -r '.number')
|
||||
TITLE=$(echo ${PR} | jq -r '.title')
|
||||
URL=$(echo ${PR} | jq -r '.pull_request.html_url')
|
||||
BODY=$(echo ${PR} | jq -r '.body')
|
||||
|
||||
PACKAGES=""
|
||||
HEADER_FOUND=false
|
||||
DIVIDER_FOUND=false
|
||||
while IFS= read -r line; do
|
||||
if [[ "${line}" == "" ]] && [[ "${HEADER_FOUND}" == "true" ]] && [[ "${DIVIDER_FOUND}" == "true" ]]; then
|
||||
break
|
||||
fi
|
||||
|
||||
if [[ "${HEADER_FOUND}" == "true" ]] && [[ "${DIVIDER_FOUND}" == "true" ]]; then
|
||||
line=$(echo ${line} | sed -r 's/\((.+)\)//g' | sed -r 's/(\[|\]|`)//g')
|
||||
parts=(${line//|/ })
|
||||
|
||||
PACKAGES+=" - ${parts[0]} - ${parts[${#parts[@]}-3]]} ➡ ${parts[${#parts[@]}-1]]}\n"
|
||||
fi
|
||||
|
||||
if [[ "${line}" == "| Package | Type | Update | Change |" ]] || [[ "${line}" == "| Package | Update | Change |" ]]; then
|
||||
HEADER_FOUND=true
|
||||
fi
|
||||
if [[ "${line}" == "|---|---|---|---|" ]] || [[ "${line}" == "|---|---|---|" ]]; then
|
||||
DIVIDER_FOUND=true
|
||||
fi
|
||||
done <<< "$BODY"
|
||||
|
||||
bold "#${NUMBER} ${STATE} $(blue "${TITLE}")"
|
||||
printf "🌐 $(underline ${URL})\n"
|
||||
printf "${PACKAGES}"
|
||||
echo ""
|
||||
done
|
||||
|
||||
fi
|
Loading…
Reference in New Issue
Block a user