Skip to content

[GAL] week17 32160,31997,31932 #7

[GAL] week17 32160,31997,31932

[GAL] week17 32160,31997,31932 #7

name: Create Galgorithm directories
on:
issues:
types: [opened]
jobs:
GAL:
runs-on: ubuntu-latest
if: "startsWith(github.event.issue.title, '[GAL]')"
permissions:
write-all
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Validate issue format
run: |
ISSUE_TITLE="${{ github.event.issue.title }}"
id=("burningfalls" "donghoony" "hjk0761" "hw0603" "hyxrxn" "jminkkk" "robinjoon" "slimsha2dy")
if [[ ! "$ISSUE_TITLE" =~ ^\[GAL\]\ ([a-zA-Z0-9_-]+)\ ([0-9]+[,[0-9]+]*)$ ]]; then
echo "Issue title format is incorrect."
exit 1
fi
DIRNAME="${BASH_REMATCH[1]}"
NUMBERS="${BASH_REMATCH[2]}"
IFS=',' read -ra NUM_ARRAY <<< "$NUMBERS"
PREFIX=({A..Z})
for i in "${!NUM_ARRAY[@]}"; do
NUM="${NUM_ARRAY[$i]}"
PREFIX_CHAR="${PREFIX[$i]}"
mkdir -p "${DIRNAME}/${PREFIX_CHAR}_${NUM}"
for GID in "${id[@]}"; do
mkdir -p "${DIRNAME}/${PREFIX_CHAR}_${NUM}/${GID}"
echo -e "# Info\n[Link](https://boj.kr/${NUM})\n## 💡 풀이 방법 요약\n\n## 👀 실패 이유\n\n## 🙂 마무리" > "${DIRNAME}/${PREFIX_CHAR}_${NUM}/${GID}/README.md"
done
done
- name: Check if issue creator is in allowed list
id: check_creator
run: |
ISSUE_CREATOR="${{ github.event.issue.user.login }}"
id=("burningfalls" "donghoony" "hjk0761" "hw0603" "hyxrxn" "jminkkk" "robinjoon" "slimsha2dy")
if [[ " ${id[@]} " =~ " $ISSUE_CREATOR " ]]; then
echo "allowed=true" >> $GITHUB_ENV
else
echo "allowed=false" >> $GITHUB_ENV
fi
- name: Push changes if allowed
if: env.allowed == 'true'
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Actions"
git add .
git commit -m "Create directories and files for GAL issue: ${{ github.event.issue.number }}"
git push
- name: Close issue after pushing
uses: peter-evans/close-issue@v3
with:
issue-number: ${{ github.event.issue.number }}
comment: |
Created directories, closing issue.