@@ -3,7 +3,7 @@ name: Weekly Meetup Issue Creator
33on :
44 schedule :
55 - cron : ' 0 13 * * 0' # 매주 일요일 22:00 KST
6- workflow_dispatch : # 수동 테스트 가능
6+ workflow_dispatch :
77
88jobs :
99 create-meetup-issue :
2828 TARGET_DATE=$(date -d "+6 days" +%Y-%m-%d)
2929
3030 # 3. 회차(Count) 및 연도/분기/프로젝트명 계산
31- # 날짜 차이를 구한 뒤 7로 나누어 주차 계산
3231 DAYS_DIFF=$(( ($(date -d "$TARGET_DATE" +%s) - $(date -d "$BASE_DATE" +%s)) / 86400 ))
3332 WEEKS_DIFF=$(( DAYS_DIFF / 7 ))
3433 NEXT_COUNT=$(( BASE_COUNT + WEEKS_DIFF ))
4140 PROJECT_NAME="${YEAR} Online study meetup"
4241 NEXT_TITLE="${NEXT_COUNT}th online meetup, ${TARGET_DATE}"
4342
44- echo "Target Title: $NEXT_TITLE"
45-
4643 # 4. 새 이슈 생성 (이슈 생성 후 URL을 변수에 저장)
4744 # --assignee는 본인 아이디인 'jongfeel'로 고정
4845 NEW_ISSUE_URL=$(gh issue create \
5451
5552 echo "Issue created: $NEW_ISSUE_URL"
5653
57- # 5. 프로젝트에 이슈 추가
58- # --project 옵션 대신 gh project item-create를 사용하여 명시적으로 추가합니다.
59- # --owner를 지정해야 'not found' 에러를 방지할 수 있습니다.
60- gh project item-create "$PROJECT_NAME" \
61- --owner "${{ github.repository_owner }}" \
62- --url "$NEW_ISSUE_URL"
54+ # 5. 프로젝트에 이슈 추가 (item-add 명령어 사용)
55+ # 'item-create'는 드래프트 이슈를 만들 때 사용하며,
56+ # 기존 이슈를 연결할 때는 'item-add'와 '--url'을 사용해야 합니다.
57+ # 프로젝트 번호를 모를 경우 이름으로 찾도록 구성했습니다.
58+
59+ # 프로젝트 번호(Number) 추출
60+ PROJECT_NUMBER=$(gh project list --owner "${{ github.repository_owner }}" --format json | jq -r ".projects[] | select(.title == \"$PROJECT_NAME\") | .number")
61+
62+ if [ -z "$PROJECT_NUMBER" ] || [ "$PROJECT_NUMBER" == "null" ]; then
63+ echo "Project '$PROJECT_NAME' not found."
64+ else
65+ gh project item-add "$PROJECT_NUMBER" \
66+ --owner "${{ github.repository_owner }}" \
67+ --url "$NEW_ISSUE_URL"
68+ fi
0 commit comments