Odd Even Linked List #1
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: 이슈 닫힘 시 LeetCode 파일 생성 | |
on: | |
issues: | |
types: [closed] | |
permissions: | |
contents: write | |
jobs: | |
create_leetcode_file: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 이슈에 LeetCode 라벨이 있는지 확인 | |
id: check_label | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const labels = context.payload.issue.labels; | |
const hasLabel = labels.some(label => label.name === 'LeetCode'); | |
core.setOutput('hasLabel', hasLabel); | |
- name: LeetCode 라벨이 없으면 중지 | |
if: steps.check_label.outputs.hasLabel != 'true' | |
run: | | |
echo "이슈에 LeetCode 라벨이 없습니다. 작업을 종료합니다." | |
exit 0 | |
- name: 레포지토리 체크아웃 | |
uses: actions/checkout@v3 | |
- name: 이슈 상세 정보 가져오기 | |
id: issue_details | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const issue = context.payload.issue; | |
core.setOutput('title', issue.title); | |
core.setOutput('body', issue.body); | |
core.setOutput('number', issue.number); | |
- name: 이슈 본문에서 코드 추출 | |
id: extract_code | |
run: | | |
echo '이슈 본문에서 코드를 추출합니다...' | |
echo "${{ steps.issue_details.outputs.body }}" > issue_body.txt | |
code=$(sed -n '/```cpp/,/```/p' issue_body.txt | sed '/```/d') | |
echo "$code" > code.cpp | |
- name: LeetCode 폴더에 파일 생성 | |
run: | | |
mkdir -p LeetCode | |
title="${{ steps.issue_details.outputs.title }}" | |
# 파일명 정리: 소문자 변환, 공백은 밑줄로, 유효하지 않은 문자 제거 | |
filename=$(echo "$title" | tr '[:upper:]' '[:lower:]' | tr ' ' '_' | tr -cd '[:alnum:]_.-') | |
filepath="LeetCode/$filename.cpp" | |
mv code.cpp "$filepath" | |
- name: 변경 사항 커밋 및 푸시 | |
uses: EndBug/add-and-commit@v9 | |
with: | |
message: "이슈 #${{ steps.issue_details.outputs.number }}에서 LeetCode 솔루션 추가" | |
add: "LeetCode/*" | |
author_name: GitHub Action | |
author_email: [email protected] | |
committer_name: GitHub Action | |
committer_email: [email protected] | |
token: ${{ secrets.GITHUB_TOKEN }} |