1111 options :
1212 - approve-prs
1313 - merge-prs
14+ week :
15+ description : ' Week number to filter (optional, e.g., "1")'
16+ required : false
17+ type : string
18+ default : " "
1419 exclude_prs :
1520 description : ' PR numbers to exclude (comma-separated, e.g., "1972,1973")'
1621 required : false
@@ -40,11 +45,20 @@ jobs:
4045 excludes="[$(echo "$exclude_input" | sed 's/,/, /g')]"
4146 fi
4247
48+ # Build request payload
49+ week_input="${{ inputs.week }}"
50+ if [ -z "$week_input" ]; then
51+ payload="{\"repo_name\": \"${{ github.event.repository.name }}\", \"excludes\": $excludes}"
52+ else
53+ payload="{\"repo_name\": \"${{ github.event.repository.name }}\", \"week\": \"Week $week_input\", \"excludes\": $excludes}"
54+ fi
55+
56+ echo "์ฃผ์ฐจ ํํฐ: ${week_input:-์ ์ฒด}"
4357 echo "์ ์ธํ PR: $excludes"
4458
4559 response=$(curl -s -X POST "https://github.dalestudy.com/approve-prs" \
4660 -H "Content-Type: application/json" \
47- -d "{\"repo_name\": \"${{ github.event.repository.name }}\", \"excludes\": $excludes} ")
61+ -d "$payload ")
4862
4963 echo "response=$response" >> $GITHUB_OUTPUT
5064 echo "$response" | jq '.'
5569
5670 success=$(echo "$response" | jq -r '.success // false')
5771 total=$(echo "$response" | jq -r '.total_open_prs // 0')
72+ week_filter=$(echo "$response" | jq -r '.week_filter // null')
73+ week_matched=$(echo "$response" | jq -r '.week_matched // 0')
74+ week_mismatched=$(echo "$response" | jq -r '.week_mismatched // 0')
75+ solving_excluded=$(echo "$response" | jq -r '.solving_excluded // 0')
5876 processed=$(echo "$response" | jq -r '.processed // 0')
5977 approved=$(echo "$response" | jq -r '.approved // 0')
6078 skipped=$(echo "$response" | jq -r '.skipped // 0')
@@ -69,18 +87,42 @@ jobs:
6987 fi
7088
7189 echo "" >> $GITHUB_STEP_SUMMARY
90+ if [ "$week_filter" != "null" ]; then
91+ echo "- ๐๏ธ ์ฃผ์ฐจ ํํฐ: **Week $week_filter**" >> $GITHUB_STEP_SUMMARY
92+ fi
7293 echo "- ๐ ์ ์ฒด Open PR: **$total**๊ฐ" >> $GITHUB_STEP_SUMMARY
94+ if [ "$week_filter" != "null" ]; then
95+ echo "- โ
Week $week_filter ๋งค์นญ: **$week_matched**๊ฐ" >> $GITHUB_STEP_SUMMARY
96+ echo "- โ Week ๋ถ์ผ์น: **$week_mismatched**๊ฐ" >> $GITHUB_STEP_SUMMARY
97+ echo "- ๐ Solving ์ํ ์ ์ธ: **$solving_excluded**๊ฐ" >> $GITHUB_STEP_SUMMARY
98+ fi
7399 echo "- ๐ ๊ฒ์ฌํ PR: **$processed**๊ฐ" >> $GITHUB_STEP_SUMMARY
74100 echo "- โ
์น์ธํ PR: **$approved**๊ฐ" >> $GITHUB_STEP_SUMMARY
75101 echo "- โญ๏ธ ๊ฑด๋๋ด PR: **$skipped**๊ฐ" >> $GITHUB_STEP_SUMMARY
76102
77103 # Show detailed results if available
78- results =$(echo "$response" | jq -r '.results // [] ')
79- if [ "$results" != "[]" ]; then
104+ result_count =$(echo "$response" | jq -r '.results | length ')
105+ if [ "$result_count" -gt 0 ]; then
80106 echo "" >> $GITHUB_STEP_SUMMARY
81107 echo "### ๐ ์์ธ ๊ฒฐ๊ณผ" >> $GITHUB_STEP_SUMMARY
82108 echo "" >> $GITHUB_STEP_SUMMARY
83- echo "$response" | jq -r '.results[] | "- PR #\(.pr) [\(.title)]: \(if .skipped then "โญ๏ธ skipped (\(.reason))" elif .approved then "โ
approved" else "โ failed (\(.error // "unknown"))" end)"' >> $GITHUB_STEP_SUMMARY
109+
110+ echo "$response" | jq -c '.results[]' | while read -r item; do
111+ pr=$(echo "$item" | jq -r '.pr')
112+ title=$(echo "$item" | jq -r '.title')
113+ skipped=$(echo "$item" | jq -r '.skipped // false')
114+ approved=$(echo "$item" | jq -r '.approved // false')
115+ reason=$(echo "$item" | jq -r '.reason // ""')
116+ error=$(echo "$item" | jq -r '.error // ""')
117+
118+ if [ "$skipped" = "true" ]; then
119+ echo "- PR #$pr [$title]: โญ๏ธ skipped ($reason)" >> $GITHUB_STEP_SUMMARY
120+ elif [ "$approved" = "true" ]; then
121+ echo "- PR #$pr [$title]: โ
approved" >> $GITHUB_STEP_SUMMARY
122+ else
123+ echo "- PR #$pr [$title]: โ failed (${error:-unknown})" >> $GITHUB_STEP_SUMMARY
124+ fi
125+ done
84126 fi
85127
86128 merge-prs :
@@ -105,13 +147,23 @@ jobs:
105147 excludes="[$(echo "$exclude_input" | sed 's/,/, /g')]"
106148 fi
107149
150+ # Build request payload
151+ week_input="${{ inputs.week }}"
108152 merge_method="merge"
153+
154+ if [ -z "$week_input" ]; then
155+ payload="{\"repo_name\": \"${{ github.event.repository.name }}\", \"merge_method\": \"$merge_method\", \"excludes\": $excludes}"
156+ else
157+ payload="{\"repo_name\": \"${{ github.event.repository.name }}\", \"merge_method\": \"$merge_method\", \"week\": \"Week $week_input\", \"excludes\": $excludes}"
158+ fi
159+
109160 echo "๋จธ์ง ๋ฐฉ์: $merge_method"
161+ echo "์ฃผ์ฐจ ํํฐ: ${week_input:-์ ์ฒด}"
110162 echo "์ ์ธํ PR: $excludes"
111163
112164 response=$(curl -s -X POST "https://github.dalestudy.com/merge-prs" \
113165 -H "Content-Type: application/json" \
114- -d "{\"repo_name\": \"${{ github.event.repository.name }}\", \"merge_method\": \"$merge_method\", \"excludes\": $excludes} ")
166+ -d "$payload ")
115167
116168 echo "response=$response" >> $GITHUB_OUTPUT
117169 echo "$response" | jq '.'
@@ -122,6 +174,10 @@ jobs:
122174
123175 success=$(echo "$response" | jq -r '.success // false')
124176 total=$(echo "$response" | jq -r '.total_open_prs // 0')
177+ week_filter=$(echo "$response" | jq -r '.week_filter // null')
178+ week_matched=$(echo "$response" | jq -r '.week_matched // 0')
179+ week_mismatched=$(echo "$response" | jq -r '.week_mismatched // 0')
180+ solving_excluded=$(echo "$response" | jq -r '.solving_excluded // 0')
125181 processed=$(echo "$response" | jq -r '.processed // 0')
126182 merged=$(echo "$response" | jq -r '.merged // 0')
127183 skipped=$(echo "$response" | jq -r '.skipped // 0')
@@ -138,16 +194,40 @@ jobs:
138194
139195 echo "" >> $GITHUB_STEP_SUMMARY
140196 echo "- ๐ง ๋จธ์ง ๋ฐฉ์: **$merge_method**" >> $GITHUB_STEP_SUMMARY
197+ if [ "$week_filter" != "null" ]; then
198+ echo "- ๐๏ธ ์ฃผ์ฐจ ํํฐ: **Week $week_filter**" >> $GITHUB_STEP_SUMMARY
199+ fi
141200 echo "- ๐ ์ ์ฒด Open PR: **$total**๊ฐ" >> $GITHUB_STEP_SUMMARY
201+ if [ "$week_filter" != "null" ]; then
202+ echo "- โ
Week $week_filter ๋งค์นญ: **$week_matched**๊ฐ" >> $GITHUB_STEP_SUMMARY
203+ echo "- โ Week ๋ถ์ผ์น: **$week_mismatched**๊ฐ" >> $GITHUB_STEP_SUMMARY
204+ echo "- ๐ Solving ์ํ ์ ์ธ: **$solving_excluded**๊ฐ" >> $GITHUB_STEP_SUMMARY
205+ fi
142206 echo "- ๐ ๊ฒ์ฌํ PR: **$processed**๊ฐ" >> $GITHUB_STEP_SUMMARY
143207 echo "- โ
๋จธ์งํ PR: **$merged**๊ฐ" >> $GITHUB_STEP_SUMMARY
144208 echo "- โญ๏ธ ๊ฑด๋๋ด PR: **$skipped**๊ฐ" >> $GITHUB_STEP_SUMMARY
145209
146210 # Show detailed results if available
147- results =$(echo "$response" | jq -r '.results // [] ')
148- if [ "$results" != "[]" ]; then
211+ result_count =$(echo "$response" | jq -r '.results | length ')
212+ if [ "$result_count" -gt 0 ]; then
149213 echo "" >> $GITHUB_STEP_SUMMARY
150214 echo "### ๐ ์์ธ ๊ฒฐ๊ณผ" >> $GITHUB_STEP_SUMMARY
151215 echo "" >> $GITHUB_STEP_SUMMARY
152- echo "$response" | jq -r '.results[] | "- PR #\(.pr) [\(.title)]: \(if .skipped then "โญ๏ธ skipped (\(.reason))" elif .merged then "โ
merged" else "โ failed (\(.error // "unknown"))" end)"' >> $GITHUB_STEP_SUMMARY
216+
217+ echo "$response" | jq -c '.results[]' | while read -r item; do
218+ pr=$(echo "$item" | jq -r '.pr')
219+ title=$(echo "$item" | jq -r '.title')
220+ skipped=$(echo "$item" | jq -r '.skipped // false')
221+ merged=$(echo "$item" | jq -r '.merged // false')
222+ reason=$(echo "$item" | jq -r '.reason // ""')
223+ error=$(echo "$item" | jq -r '.error // ""')
224+
225+ if [ "$skipped" = "true" ]; then
226+ echo "- PR #$pr [$title]: โญ๏ธ skipped ($reason)" >> $GITHUB_STEP_SUMMARY
227+ elif [ "$merged" = "true" ]; then
228+ echo "- PR #$pr [$title]: โ
merged" >> $GITHUB_STEP_SUMMARY
229+ else
230+ echo "- PR #$pr [$title]: โ failed (${error:-unknown})" >> $GITHUB_STEP_SUMMARY
231+ fi
232+ done
153233 fi
0 commit comments