-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathcreate_pr.sh
More file actions
executable file
·108 lines (92 loc) · 2.78 KB
/
create_pr.sh
File metadata and controls
executable file
·108 lines (92 loc) · 2.78 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/bash
set -euo pipefail
REVIEWERS="TaeHyoungKwon,jongfeel,ymkim97,tttghost,dhlee3994,GeunJuLEE,benscookie,chichoon"
ASSIGNEE="@me"
PROJECT="2026 Academic Conference"
# 이부분을 수동으로 변경해서 사용
LABELS="2026,Software Architecture: The Hard Parts
소프트웨어 아키텍처: The Hard Parts, 분산 아키텍처를 위한 모던 트레이드오프 분석"
MILESTONE="Software Architecture: The Hard Parts"
# 사전 검증
check_prerequisites() {
if ! command -v gh &> /dev/null; then
echo "오류: GitHub CLI(gh)가 설치되어 있지 않습니다."
echo "설치 방법: brew install gh"
exit 1
fi
if ! git rev-parse --git-dir &> /dev/null; then
echo "오류: Git 저장소가 아닙니다."
exit 1
fi
if ! gh auth status &> /dev/null; then
echo "오류: GitHub에 로그인되어 있지 않습니다."
echo "로그인: gh auth login"
exit 1
fi
}
# PR 제목 입력 및 검증
get_title() {
while true; do
read -p "PR 제목을 입력하세요: " TITLE
if [ -n "$TITLE" ]; then
break
fi
echo "제목은 필수입니다. 다시 입력해주세요."
done
}
# PR 본문 입력 (다중 라인 지원)
get_body() {
echo "PR 본문을 입력하세요 (여러 줄 입력 가능, 입력 완료 후 Ctrl+D):"
BODY=$(cat)
if [ -z "$BODY" ]; then
read -p "본문이 비어있습니다. 계속하시겠습니까? (y/N): " confirm
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
exit 0
fi
fi
}
# Dry-run 미리보기
dry_run() {
echo "=== PR 생성 미리보기 ==="
echo "제목: $TITLE"
echo "본문:"
echo -e "$BODY"
echo "리뷰어: $REVIEWERS"
echo "담당자: $ASSIGNEE"
echo "라벨: $LABELS"
echo "프로젝트: $PROJECT"
echo "마일스톤: $MILESTONE"
echo "========================"
}
# 메인 실행
main() {
check_prerequisites
get_title
get_body
# Dry-run 확인
read -p "PR을 생성하기 전에 미리보기를 보시겠습니까? (Y/n): " show_preview
if [[ ! "$show_preview" =~ ^[Nn]$ ]]; then
dry_run
read -p "위 내용으로 PR을 생성하시겠습니까? (Y/n): " confirm
if [[ "$confirm" =~ ^[Nn]$ ]]; then
echo "PR 생성이 취소되었습니다."
exit 0
fi
fi
# PR 생성
echo "PR을 생성하는 중..."
if gh pr create \
-t "$TITLE" \
-b "$BODY" \
-r "$REVIEWERS" \
-a "$ASSIGNEE" \
-l "$LABELS" \
-m "$MILESTONE" \
-p "$PROJECT"; then
echo "✅ PR이 성공적으로 생성되었습니다."
else
echo "❌ PR 생성에 실패했습니다."
exit 1
fi
}
main