@@ -17,11 +17,11 @@ jobs:
1717 run : |
1818 echo "๐ PR ๋ฒํธ: ${{ github.event.pull_request.number }}"
1919 pr_number="${{ github.event.pull_request.number }}"
20-
20+
2121 echo "๐ PR ๋ผ๋ฒจ ์กฐํ ์ค..."
2222 labels_json=$(gh pr view $pr_number --json labels -q '.labels[].name')
2323 echo "ํ์ธ๋ ๋ผ๋ฒจ: $labels_json"
24-
24+
2525 if [ -n "$labels_json" ]; then
2626 has_maintenance=$(echo $labels_json | grep -q 'maintenance' && echo 'true' || echo 'false')
2727 echo "maintenance ๋ผ๋ฒจ ํฌํจ ์ฌ๋ถ: $has_maintenance"
@@ -153,3 +153,111 @@ jobs:
153153 fi
154154 env :
155155 GH_TOKEN : ${{ github.token }}
156+
157+ check-project :
158+ runs-on : ubuntu-latest
159+ permissions :
160+ contents : read
161+ pull-requests : read
162+
163+ steps :
164+ # PR ๋ผ๋ฒจ ํ์ธ
165+ - name : Get PR labels
166+ id : pr-labels
167+ run : |
168+ echo "๐ PR ๋ฒํธ: ${{ github.event.pull_request.number }}"
169+ pr_number="${{ github.event.pull_request.number }}"
170+
171+ echo "๐ PR ๋ผ๋ฒจ ์กฐํ ์ค..."
172+ labels_json=$(gh pr view $pr_number --json labels -q '.labels[].name')
173+ echo "ํ์ธ๋ ๋ผ๋ฒจ: $labels_json"
174+
175+ if [ -n "$labels_json" ]; then
176+ has_maintenance=$(echo $labels_json | grep -q 'maintenance' && echo 'true' || echo 'false')
177+ echo "maintenance ๋ผ๋ฒจ ํฌํจ ์ฌ๋ถ: $has_maintenance"
178+ echo "has_maintenance=$has_maintenance" >> $GITHUB_OUTPUT
179+ else
180+ echo "maintenance ๋ผ๋ฒจ์ด ์๋ PR์
๋๋ค. Week ์ค์ ์ ๊ฒ์ฌํฉ๋๋ค."
181+ echo "has_maintenance=false" >> $GITHUB_OUTPUT
182+ fi
183+ env :
184+ GH_TOKEN : ${{ github.token }}
185+
186+ # Week ์ค์ ํ์ธ
187+ - name : Check Week setting in project
188+ if : ${{ steps.pr-labels.outputs.has_maintenance != 'true' }}
189+ run : |
190+ echo "๐ Week ์ค์ ๊ฒ์ฌ ์์"
191+ pr_number="${{ github.event.pull_request.number }}"
192+
193+ echo "๐ ํ๋ก์ ํธ ์ ๋ณด ์กฐํ ์ค..."
194+ project_data=$(gh api graphql -f query='
195+ query {
196+ repository(owner: "${{ github.repository_owner }}", name: "${{ github.event.repository.name }}") {
197+ pullRequest(number: '$pr_number') {
198+ projectItems(first: 10) {
199+ nodes {
200+ project {
201+ title
202+ }
203+ fieldValues(first: 20) {
204+ nodes {
205+ __typename
206+ ... on ProjectV2ItemFieldIterationValue {
207+ title
208+ field {
209+ ... on ProjectV2FieldCommon {
210+ name
211+ }
212+ }
213+ }
214+ }
215+ }
216+ }
217+ }
218+ }
219+ }
220+ }
221+ ' 2>&1)
222+
223+ if [ $? -ne 0 ]; then
224+ echo "โ ๏ธ ํ๋ก์ ํธ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค."
225+ echo "$project_data"
226+ echo "## โ Week ์ค์ ๊ฒ์ฆ ์คํจ" >> $GITHUB_STEP_SUMMARY
227+ echo "" >> $GITHUB_STEP_SUMMARY
228+ echo "ํ๋ก์ ํธ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์์ต๋๋ค. PR์ด ํ๋ก์ ํธ์ ์ถ๊ฐ๋์๋์ง ํ์ธํด์ฃผ์ธ์." >> $GITHUB_STEP_SUMMARY
229+ exit 1
230+ fi
231+
232+ echo "ํ๋ก์ ํธ ๋ฐ์ดํฐ:"
233+ echo "$project_data"
234+
235+ # Week ํ๋ ๊ฐ ์ถ์ถ (Iteration ํ์
์ Week ํ๋)
236+ week_value=$(echo "$project_data" | jq -r '
237+ .data.repository.pullRequest.projectItems.nodes[].fieldValues.nodes[] |
238+ select(.__typename == "ProjectV2ItemFieldIterationValue") |
239+ select(.field.name == "Week") |
240+ .title
241+ ' 2>/dev/null | head -n 1)
242+
243+ echo "์ถ์ถ๋ Week ๊ฐ: '$week_value'"
244+
245+ if [ -z "$week_value" ] || [ "$week_value" = "null" ]; then
246+ echo "## โ Week ์ค์ ๊ฒ์ฆ ์คํจ" >> $GITHUB_STEP_SUMMARY
247+ echo "" >> $GITHUB_STEP_SUMMARY
248+ echo "โ ๏ธ **PR์ Week ์ค์ ์ด ๋๋ฝ๋์์ต๋๋ค!**" >> $GITHUB_STEP_SUMMARY
249+ echo "" >> $GITHUB_STEP_SUMMARY
250+ echo "### ์ค์ ๋ฐฉ๋ฒ" >> $GITHUB_STEP_SUMMARY
251+ echo "1. PR ์ฐ์ธก์ \`Projects\` ์น์
์์ \`๋ฆฌํธ์ฝ๋ ์คํฐ๋\` ์ ๋๋กญ๋ค์ด(โผ) ํด๋ฆญ" >> $GITHUB_STEP_SUMMARY
252+ echo "2. ํ์ฌ ์ฃผ์ฐจ๋ฅผ ์ ํํด์ฃผ์ธ์ (์: \`Week 14(current)\` ๋๋ \`Week 14\`)" >> $GITHUB_STEP_SUMMARY
253+ echo "" >> $GITHUB_STEP_SUMMARY
254+ echo "๐ [์์ธํ ๊ฐ์ด๋ ๋ณด๊ธฐ](https://github.com/DaleStudy/leetcode-study/wiki/%EB%8B%B5%EC%95%88-%EC%A0%9C%EC%B6%9C-%EA%B0%80%EC%9D%B4%EB%93%9C#pr-%EC%9E%91%EC%84%B1%EB%B2%95)" >> $GITHUB_STEP_SUMMARY
255+ exit 1
256+ fi
257+
258+ echo "## โ
Week ์ค์ ๊ฒ์ฆ ์ฑ๊ณต" >> $GITHUB_STEP_SUMMARY
259+ echo "" >> $GITHUB_STEP_SUMMARY
260+ echo "Week ์ค์ : **$week_value**" >> $GITHUB_STEP_SUMMARY
261+ echo "โ
Week ์ค์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋์ด ์์ต๋๋ค!"
262+ env :
263+ GH_TOKEN : ${{ github.token }}
0 commit comments