Skip to content

Instantly share code, notes, and snippets.

@wknapik
Created October 3, 2024 02:26
Show Gist options
  • Save wknapik/9e0b65c0ffe69d2c6f8469595fe61e2e to your computer and use it in GitHub Desktop.
Save wknapik/9e0b65c0ffe69d2c6f8469595fe61e2e to your computer and use it in GitHub Desktop.
Print the earliest Brave browser release containing PR code
#!/usr/bin/env bash
# Print the earliest Brave browser release containing PR code
# USAGE: released-in <PR_NUMBER | PR_URL | GIT_REF>
# Requires: bash>=4, coreutils, curl, git, grep, jq
set -eEo pipefail
shopt -s inherit_errexit
if [[ "$1" == */pull/* ]]; then
pr_number="$(grep -oE 'pull/[0-9]+' <<<"$1"|cut -d/ -f2)"
elif grep -qxE '[0-9]{1,6}' <<<"$1"; then
pr_number="$1"
elif grep -qxiE '[a-f0-9]{7,40}' <<<"$1"; then
merge_sha="$1"
else
echo "USAGE: released-in <PR_NUMBER | PR_URL | GIT_REF>"
exit 1
fi
if [[ "$(git config --get remote.origin.url)" != */brave-core.git ]]; then
echo "Please run this command from a brave-core checkout" \
"(and run git fetch, or the results will be stale)" >&2
exit 2
fi
if [[ "$pr_number" ]]; then
pr_info="$(curl -fsS "https://api.github.com/repos/brave/brave-core/pulls/${pr_number:?}")"
pr() { jq -r "${1:?}" <<<"${pr_info:?}"; }
if [[ "$(pr .merged_at)" != null ]]; then
merge_sha="$(pr .merge_commit_sha)"
msg="PR #${pr_number}, merged in ${merge_sha:?}"
else
echo "PR #${pr_number} is not merged yet"
exit
fi
else
msg="Ref ${merge_sha:?}"
fi
if release="$(git describe --tags --contains "${merge_sha:?}" 2>/dev/null|cut -d '~' -f1)" && [[ "$release" ]]; then
echo "${msg:?}, released in $release"
else
echo "${msg:?}, not yet released"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment