From 0f56f0029b4e2aef98ae99f7021912691d8b77d8 Mon Sep 17 00:00:00 2001 From: Danny Kopping Date: Tue, 1 Jul 2025 10:05:44 +0200 Subject: [PATCH] chore: add `which-release` script (#18657) --- scripts/which-release.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 scripts/which-release.sh diff --git a/scripts/which-release.sh b/scripts/which-release.sh new file mode 100755 index 0000000000..14c2c138c1 --- /dev/null +++ b/scripts/which-release.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# shellcheck source=scripts/lib.sh +source "$(dirname "${BASH_SOURCE[0]}")/lib.sh" + +COMMIT=$1 +if [[ -z "${COMMIT}" ]]; then + log "Usage: $0 " + log "" + log -n "Example: $0 " + log $'$(gh pr view --json mergeCommit | jq \'.mergeCommit.oid\' -r)' + exit 2 +fi + +REMOTE=$(git remote -v | grep coder/coder | awk '{print $1}' | head -n1) +if [[ -z "${REMOTE}" ]]; then + error "Could not find remote for coder/coder" +fi + +log "It is recommended that you run \`git fetch -ap ${REMOTE}\` to ensure you get a correct result." + +RELEASES=$(git branch -r --contains "${COMMIT}" | grep "${REMOTE}" | grep "/release/" | sed "s|${REMOTE}/||" || true) +if [[ -z "${RELEASES}" ]]; then + log "Commit was not found in any release branch" +else + log "Commit was found in the following release branches:" + log "${RELEASES}" +fi