@@ -11,36 +11,13 @@ jobs:
11
11
with :
12
12
fetch-depth : 0
13
13
14
- # PR ๋ผ๋ฒจ ํ์ธ
15
- - name : Get PR labels
16
- id : pr-labels
14
+ - name : Check for 1. missing end line breaks and 2. control characters in filenames
17
15
run : |
18
- pr_number="${{ github.event.pull_request.number }}"
19
- labels_json=$(gh pr view $pr_number --json labels -q '.labels[].name')
20
- if [ -n "$labels_json" ]; then
21
- echo "has_maintenance=$(echo $labels_json | grep -q 'maintenance' && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT
22
- else
23
- echo "has_maintenance=false" >> $GITHUB_OUTPUT
24
- fi
25
- env :
26
- GH_TOKEN : ${{ github.token }}
27
-
28
- - name : Check for 1. missing end line breaks and 2. control characters in filenames and 3. filename rules
29
- run : |
30
- # ํ์ํ ๊ฐ๋ค ๋ฏธ๋ฆฌ ์ค์
31
- pr_author="${{ github.event.pull_request.user.login }}"
32
- pr_number="${{ github.event.pull_request.number }}"
33
- labels_json=$(gh pr view $pr_number --json labels -q '.labels[].name')
34
- has_maintenance=false
35
- if echo "$labels_json" | grep -q "maintenance"; then
36
- has_maintenance=true
37
- fi
38
-
39
16
# ๋ฐ์ดํ๋ฅผ ์ ๊ฑฐํ๊ณ ํ์ผ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ
40
17
files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | tr -d '"')
41
18
echo "๋ณ๊ฒฝ๋ ํ์ผ ๋ชฉ๋ก:"
42
19
echo "$files"
43
-
20
+
44
21
success=true
45
22
46
23
# ์ค๋ฐ๊ฟ ์ฒดํฌ
@@ -58,13 +35,13 @@ jobs:
58
35
for file in $files; do
59
36
# basename์ผ๋ก ํ์ผ๋ช
๋ง ์ถ์ถํ๊ณ ๋ฐ์ดํ ์ ๊ฑฐ
60
37
filename=$(basename "$file" | tr -d '"')
61
-
38
+
62
39
# ๋ฐฑ์ฌ๋์๋ก ์์ํ๋ ์ ์ด๋ฌธ์๋ค ์ฒดํฌ (\b, \n, \r, \t ๋ฑ)
63
40
if printf '%q' "$filename" | grep -q '\\[bnrtfv]'; then
64
41
echo "- $file (์ ์ด๋ฌธ์ ํฌํจ)" >> $GITHUB_STEP_SUMMARY
65
42
success=false
66
43
fi
67
-
44
+
68
45
# ์ผ๋ฐ์ ์ธ ์ ์ด๋ฌธ์๋ค ์ฒดํฌ (0x00-0x1F, 0x7F)
69
46
if echo -n "$filename" | LC_ALL=C grep -q '[[:cntrl:]]'; then
70
47
echo "- $file (์ ์ด๋ฌธ์ ํฌํจ)" >> $GITHUB_STEP_SUMMARY
@@ -76,38 +53,17 @@ jobs:
76
53
echo "- $file (์ ์ด๋ฌธ์ ํฌํจ)" >> $GITHUB_STEP_SUMMARY
77
54
success=false
78
55
fi
79
-
56
+
80
57
# ์ด์ค์ผ์ดํ ์ํ์ค ์ฒดํฌ
81
58
if [[ "$filename" =~ (\\[0-7]{1,3}|\\x[0-9a-fA-F]{1,2}) ]]; then
82
59
echo "- $file (์ ์ด๋ฌธ์ ํฌํจ)" >> $GITHUB_STEP_SUMMARY
83
60
success=false
84
61
fi
85
62
done
86
63
87
- # maintenance ๋ผ๋ฒจ์ด ์๋ ๊ฒฝ์ฐ์๋ง ํ์ผ๋ช
๊ท์น ์ฒดํฌ
88
- if [ "$has_maintenance" != "true" ]; then
89
- echo -e "\n## ํ์ผ๋ช
๊ท์น ์๋ฐ" >> $GITHUB_STEP_SUMMARY
90
- for file in $files; do
91
- if [ -f "$file" ]; then
92
- # ํ์ผ๋ช
๋ง ์ถ์ถ (๊ฒฝ๋ก ์ ์ธ)
93
- filename=$(basename "$file")
94
- # ํ์ผ๋ช
์ด GitHub๊ณ์ ๋ช
์ธ์ง ํ์ธ
95
- if [[ ! "$filename" =~ ^${pr_author} ]]; then
96
- echo "- $file (ํ์ผ๋ช
์ '$pr_author'๋ก ํด์ฃผ์
์ผ ํฉ๋๋ค)" >> $GITHUB_STEP_SUMMARY
97
- success=false
98
- fi
99
- fi
100
- done
101
- fi
102
-
103
64
if [ "$success" = false ]; then
104
65
echo -e "\n:warning: ์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํด ์ฃผ์ธ์:" >> $GITHUB_STEP_SUMMARY
105
66
echo "1. ํ์ผ ๋์ ๋๋ฝ๋ ์ค๋ฐ๊ฟ์ ์ถ๊ฐํด ์ฃผ์ธ์." >> $GITHUB_STEP_SUMMARY
106
67
echo "2. ํ์ผ๋ช
์์ ์ ์ด๋ฌธ์๋ฅผ ์ ๊ฑฐํด ์ฃผ์ธ์." >> $GITHUB_STEP_SUMMARY
107
- if [[ ! "$pr_labels" =~ "maintenance" ]]; then
108
- echo "3. ํ์ผ๋ช
์ ๋ฐ๋์ 'GitHub๊ณ์ ๋ช
'์ผ๋ก ํด์ฃผ์
์ผ ํฉ๋๋ค. (์: ${pr_author}.ts)" >> $GITHUB_STEP_SUMMARY
109
- fi
110
68
exit 1
111
- fi
112
- env :
113
- GH_TOKEN : ${{ github.token }}
69
+ fi
0 commit comments