pkgs/git-checkout-github-pr: Add script to checkout GitHub PRs in repos
This commit is contained in:
44
pkgs/git-checkout-github-pr/git-checkout-github-pr.sh
Executable file
44
pkgs/git-checkout-github-pr/git-checkout-github-pr.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/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}"
|
Reference in New Issue
Block a user