TodoList 2024년 11월 22일 #137
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Issue Closed | |
on: | |
issues: | |
types: [closed] | |
jobs: | |
create-md: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
ref: main | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Create issue markdown file | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
ISSUE_NUMBER="${{ github.event.issue.number }}" | |
ISSUE_TITLE="${{ github.event.issue.title }}" | |
ISSUE_BODY="${{ github.event.issue.body }}" | |
ISSUE_USER="${{ github.event.issue.user.login }}" | |
REPO_FULL_NAME="${{ github.repository }}" | |
# 파일명으로 사용할 수 없는 문자 제거 및 변환 | |
SANITIZED_ISSUE_TITLE=$(echo "${ISSUE_TITLE}" | tr ' ' '-' | tr -cd 'a-zA-Z0-9가-힣-') | |
# 만약 SANITIZED_ISSUE_TITLE이 비어있다면 기본값 사용 | |
if [ -z "$SANITIZED_ISSUE_TITLE" ]; then | |
SANITIZED_ISSUE_TITLE="issue-${ISSUE_NUMBER}" | |
fi | |
FILE_NAME="TodoList/${SANITIZED_ISSUE_TITLE}.md" | |
mkdir -p TodoList | |
echo "# Issue #${ISSUE_NUMBER}: ${ISSUE_TITLE}" > "$FILE_NAME" | |
echo "" >> "$FILE_NAME" | |
echo "${ISSUE_BODY}" >> "$FILE_NAME" | |
echo "" >> "$FILE_NAME" | |
echo "## Comments" >> "$FILE_NAME" | |
echo "" >> "$FILE_NAME" | |
# 이슈의 코멘트 가져오기 | |
COMMENTS=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \ | |
"https://api.github.com/repos/${REPO_FULL_NAME}/issues/${ISSUE_NUMBER}/comments") | |
# 각 코멘트를 파일에 추가 | |
echo "$COMMENTS" | jq -r '.[] | "### Comment by " + .user.login + " on " + .created_at + "\n\n" + .body + "\n"' >> "$FILE_NAME" | |
echo "Created file: $FILE_NAME" | |
- name: Commit and push changes | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
git config --global user.name 'github-actions[bot]' | |
git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com' | |
git add . | |
git commit -m "Add markdown file for closed issue #${ISSUE_NUMBER}" | |
git pull --rebase origin main | |
git push origin main |