#!/usr/bin/env bash set -euo pipefail ID="" REMOTE="origin" LOCAL_BRANCH="" while [[ $# -gt 0 ]]; do case $1 in --remote) REMOTE="$2" shift shift ;; --local-branch) LOCAL_BRANCH="$2" shift shift ;; *) if [[ -z "${ID}" ]]; then ID="$1" shift else echo "Unknown option $1" exit 1 fi ;; esac done if [[ -z "${ID}" ]]; then echo "Specify GitHub PR number" exit 1 fi if [[ -z "${LOCAL_BRANCH}" ]]; then LOCAL_BRANCH="pr/${ID}" fi git fetch "${REMOTE}" "pull/${ID}/head:${LOCAL_BRANCH}" git switch "${LOCAL_BRANCH}"