-
Notifications
You must be signed in to change notification settings - Fork 156
Expand file tree
/
Copy pathpush_and_create_pr.sh
More file actions
executable file
·64 lines (50 loc) · 1.5 KB
/
Copy pathpush_and_create_pr.sh
File metadata and controls
executable file
·64 lines (50 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
# push_and_create_pr.sh — push current branch and open a PR via GitHub CLI.
# Usage: bash push_and_create_pr.sh [--help]
set -e
usage() {
cat <<EOF
Usage: bash push_and_create_pr.sh [--help]
Pushes the current branch to origin and creates a GitHub Pull Request.
Requirements:
- gh CLI installed and authenticated (https://cli.github.com/)
- Must be run from inside the git repository
Options:
--help Show this help message and exit
EOF
exit 0
}
[[ "${1:-}" == "--help" ]] && usage
# Validate gh CLI is installed
if ! command -v gh &>/dev/null; then
echo "❌ Error: 'gh' CLI is not installed."
echo " Install it from https://cli.github.com/ then run: gh auth login"
exit 1
fi
# Validate gh CLI is authenticated
if ! gh auth status &>/dev/null; then
echo "❌ Error: 'gh' CLI is not authenticated."
echo " Run: gh auth login"
exit 1
fi
# Derive repo from git remote (works after forks/renames)
REPO=$(git remote get-url origin | sed -E 's|.*[:/]([^/]+/[^/]+)(\.git)?$|\1|')
CURRENT_BRANCH=$(git branch --show-current)
if [[ -z "$CURRENT_BRANCH" ]]; then
echo "❌ Error: Could not determine current branch (detached HEAD?)."
exit 1
fi
echo "📦 Repository : $REPO"
echo "🌿 Branch : $CURRENT_BRANCH"
echo ""
echo "🚀 Pushing branch to origin..."
git push -u origin "$CURRENT_BRANCH"
echo ""
echo "📝 Creating Pull Request..."
gh pr create \
--repo "$REPO" \
--base main \
--head "$CURRENT_BRANCH" \
--fill
echo ""
echo "✅ Done!"