[FIX]: 리뷰 탭 전환 및 리뷰 문장 입력 UX 개선 #24
This file contains hidden or 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: AI Auto Fixer | |
| on: | |
| pull_request: | |
| types: [labeled] | |
| jobs: | |
| fix: | |
| if: github.event.label.name == 'ai-fix' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Git | |
| run: | | |
| git config --global user.name "github-actions[bot]" | |
| git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
| - name: Cache pip | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip | |
| - name: Cache npm | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.npm | |
| key: ${{ runner.os }}-npm | |
| - name: Install Tools | |
| run: | | |
| pip install aider-chat | |
| npm install -g @anthropic-ai/claude-code | |
| - name: Run Hybrid Fix | |
| env: | |
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # 1. Extract reviews | |
| gh pr view ${{ github.event.pull_request.number }} --comments > reviews.txt | |
| if [ ! -s reviews.txt ]; then | |
| echo "No reviews found. Exiting." | |
| exit 0 | |
| fi | |
| # 2. Generate strategy with Claude (auto-approve Read/Edit so it creates strategy.md without asking) | |
| claude -p "Read reviews.txt. Create strategy.md with detailed instructions for aider. 1. Fix all logic issues from the reviews. 2. Add JSDoc to every function (Docstring Coverage 80%). 3. IMPORTANT: Include commit guidelines - make SMALL ATOMIC commits (break into multiple commits), use format '<type>: <description in Korean>' where type is in English (feat/fix/refactor/docs/style/test/chore) and description is in Korean. Write step-by-step instructions so aider can execute without asking. Output the full strategy into strategy.md." --allowedTools "Read,Edit,Bash" | |
| if [ ! -f strategy.md ] || [ ! -s strategy.md ]; then | |
| echo "Strategy file not created. Fallback: inject review content into strategy." | |
| { | |
| echo "# Code review fixes" | |
| echo "" | |
| echo "## Review comments (fix these issues):" | |
| echo "" | |
| cat reviews.txt | |
| echo "" | |
| echo "## Instructions" | |
| echo "- Fix every issue mentioned above." | |
| echo "- Add JSDoc comments to every function in the touched files." | |
| echo "" | |
| echo "## Commit Guidelines (IMPORTANT)" | |
| echo "- Make SMALL, ATOMIC commits for each logical change (break into multiple commits)" | |
| echo "- Use conventional commit format: <type>: <description in Korean>" | |
| echo "- Types (in English): feat, fix, refactor, docs, style, test, chore" | |
| echo "- Description (in Korean): Clear explanation of what was changed" | |
| echo "- Examples:" | |
| echo " - feat: 사용자 인증 로직 추가" | |
| echo " - fix: 로그인 버그 수정" | |
| echo " - refactor: 컴포넌트 구조 개선" | |
| echo " - docs: JSDoc 주석 추가" | |
| } > strategy.md | |
| fi | |
| # 3. Run aider with official flags | |
| aider --model deepseek/deepseek-chat --message-file strategy.md --yes --no-check-update || { | |
| echo "Aider execution failed" | |
| exit 1 | |
| } | |
| - name: Push Changes | |
| run: | | |
| git push origin HEAD:${{ github.head_ref }} || echo "No changes to push" |