jira_task_created #34
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: Automated Claude Development Workflow | |
| on: | |
| repository_dispatch: | |
| types: [jira_task_created, jira_task_updated] | |
| workflow_dispatch: | |
| inputs: | |
| jira_number: | |
| description: 'Manual trigger - Jira ticket number (e.g., LDOC-123)' | |
| required: true | |
| type: string | |
| env: | |
| JIRA_NUMBER: ${{ github.event.client_payload.jira_number || github.event.inputs.jira_number }} | |
| jobs: | |
| # Phase 1: Issue Creation and Requirements Analysis | |
| phase1-requirements: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| issues: write | |
| id-token: write | |
| outputs: | |
| issue_number: ${{ steps.create_issue.outputs.issue_number }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| - name: Phase 1 - Requirements Analysis | |
| id: requirements | |
| uses: anthropics/claude-code-base-action@beta | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| JIRA_URL: https://hikky.atlassian.net | |
| JIRA_USERNAME: r.akai@vrhikky.com | |
| JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} | |
| with: | |
| prompt: | | |
| 【フェーズ1: 要件分析とGitHub Issue作成】 | |
| Jira番号 '${{ env.JIRA_NUMBER }}' について以下を実行してください: | |
| 1. MCPのJira機能を使ってタスク詳細を取得 | |
| 2. 要件を分析し、技術的な実装方針を策定 | |
| 3. GitHub Issueを作成(タイトルと内容に@claudeを追加) | |
| 4. Issueの内容に以下の実行計画を記載: | |
| - A. 要件定義ドキュメントを作成 ✓ | |
| - B. 設計書を作成 (次フェーズ) | |
| - C. TDDでコード実装 (次フェーズ) | |
| - D. Pull Requestを作成 (次フェーズ) | |
| 5. issue.txtファイルに作成したIssue番号を出力 | |
| 注意:MCPツールの使用許可が求められた場合は、処理を終えてください。 | |
| mcp_config: ".mcp.json" | |
| allowed_tools: "Bash,View,GlobTool,GrepTool,BatchTool,Edit,Write,mcp__mcp-atlassian__jira_get_user_profile,mcp__mcp-atlassian__jira_get_issue,mcp__mcp-atlassian__jira_search,mcp__mcp-atlassian__jira_search_fields,mcp__mcp-atlassian__jira_get_project_issues,mcp__mcp-atlassian__jira_get_transitions,mcp__mcp-atlassian__jira_get_worklog,mcp__mcp-atlassian__jira_download_attachments,mcp__mcp-atlassian__jira_get_agile_boards,mcp__mcp-atlassian__jira_get_board_issues,mcp__mcp-atlassian__jira_get_sprints_from_board,mcp__mcp-atlassian__jira_get_sprint_issues,mcp__mcp-atlassian__jira_get_link_types,mcp__mcp-atlassian__jira_create_issue,mcp__mcp-atlassian__jira_batch_create_issues,mcp__mcp-atlassian__jira_batch_get_changelogs,mcp__mcp-atlassian__jira_update_issue,mcp__mcp-atlassian__jira_delete_issue,mcp__mcp-atlassian__jira_add_comment,mcp__mcp-atlassian__jira_add_worklog,mcp__mcp-atlassian__jira_link_to_epic,mcp__mcp-atlassian__jira_create_issue_link,mcp__mcp-atlassian__jira_remove_issue_link,mcp__mcp-atlassian__jira_transition_issue,mcp__mcp-atlassian__jira_create_sprint,mcp__mcp-atlassian__jira_update_sprint,mcp__mcp-atlassian__confluence_search,mcp__mcp-atlassian__confluence_get_page,mcp__mcp-atlassian__confluence_get_page_children,mcp__mcp-atlassian__confluence_get_comments,mcp__mcp-atlassian__confluence_get_labels,mcp__mcp-atlassian__confluence_add_label,mcp__mcp-atlassian__confluence_create_page,mcp__mcp-atlassian__confluence_update_page,mcp__mcp-atlassian__confluence_delete_page,mcp__mcp-atlassian__confluence_add_comment" | |
| anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
| - name: Extract Issue Number | |
| id: create_issue | |
| run: | | |
| if [ -f "issue.txt" ]; then | |
| echo "issue_number=$(cat issue.txt)" >> $GITHUB_OUTPUT | |
| else | |
| echo "issue_number=" >> $GITHUB_OUTPUT | |
| fi | |
| # Phase 2: Design and Implementation | |
| phase2-implementation: | |
| needs: phase1-requirements | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| issues: write | |
| id-token: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Create feature branch | |
| run: | | |
| BRANCH_NAME="feature/jira-${{ env.JIRA_NUMBER }}-$(date +%Y%m%d-%H%M%S)" | |
| git checkout -b $BRANCH_NAME | |
| echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | |
| - name: Phase 2 - Design and Implementation | |
| uses: anthropics/claude-code-base-action@beta | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| JIRA_URL: https://hikky.atlassian.net | |
| JIRA_USERNAME: r.akai@vrhikky.com | |
| JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} | |
| ISSUE_NUMBER: ${{ needs.phase1-requirements.outputs.issue_number }} | |
| with: | |
| prompt: | | |
| 【フェーズ2: 設計とTDD実装】 | |
| Jira番号 '${{ env.JIRA_NUMBER }}' のタスクについて、以下を実行してください: | |
| 1. 詳細設計書を作成(docs/design/配下に配置) | |
| 2. TDD (Test Driven Development) アプローチで実装 | |
| - まずテストケースを作成 | |
| - テストが失敗することを確認 | |
| - 最小限の実装でテストをパス | |
| - リファクタリング | |
| 3. コードレビュー用のドキュメントを作成 | |
| 4. 実装が完了したらGitHub Issue #${{ env.ISSUE_NUMBER }} を更新 | |
| 5. 次フェーズ用にcommit.txtファイルに最新コミットハッシュを出力 | |
| ブランチ名: ${{ env.BRANCH_NAME }} | |
| 実装は段階的にコミットし、各段階で意味のあるコミットメッセージを付けてください。 | |
| mcp_config: ".mcp.json" | |
| allowed_tools: "Bash,View,GlobTool,GrepTool,BatchTool,Edit,Write,mcp__mcp-atlassian__jira_get_user_profile,mcp__mcp-atlassian__jira_get_issue,mcp__mcp-atlassian__jira_search,mcp__mcp-atlassian__jira_search_fields,mcp__mcp-atlassian__jira_get_project_issues,mcp__mcp-atlassian__jira_get_transitions,mcp__mcp-atlassian__jira_get_worklog,mcp__mcp-atlassian__jira_download_attachments,mcp__mcp-atlassian__jira_get_agile_boards,mcp__mcp-atlassian__jira_get_board_issues,mcp__mcp-atlassian__jira_get_sprints_from_board,mcp__mcp-atlassian__jira_get_sprint_issues,mcp__mcp-atlassian__jira_get_link_types,mcp__mcp-atlassian__jira_create_issue,mcp__mcp-atlassian__jira_batch_create_issues,mcp__mcp-atlassian__jira_batch_get_changelogs,mcp__mcp-atlassian__jira_update_issue,mcp__mcp-atlassian__jira_delete_issue,mcp__mcp-atlassian__jira_add_comment,mcp__mcp-atlassian__jira_add_worklog,mcp__mcp-atlassian__jira_link_to_epic,mcp__mcp-atlassian__jira_create_issue_link,mcp__mcp-atlassian__jira_remove_issue_link,mcp__mcp-atlassian__jira_transition_issue,mcp__mcp-atlassian__jira_create_sprint,mcp__mcp-atlassian__jira_update_sprint,mcp__mcp-atlassian__confluence_search,mcp__mcp-atlassian__confluence_get_page,mcp__mcp-atlassian__confluence_get_page_children,mcp__mcp-atlassian__confluence_get_comments,mcp__mcp-atlassian__confluence_get_labels,mcp__mcp-atlassian__confluence_add_label,mcp__mcp-atlassian__confluence_create_page,mcp__mcp-atlassian__confluence_update_page,mcp__mcp-atlassian__confluence_delete_page,mcp__mcp-atlassian__confluence_add_comment" | |
| anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
| - name: Push feature branch | |
| run: | | |
| git push origin ${{ env.BRANCH_NAME }} | |
| # Phase 3: Pull Request Creation and Review | |
| phase3-pull-request: | |
| needs: [phase1-requirements, phase2-implementation] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| issues: write | |
| id-token: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Phase 3 - Pull Request Creation | |
| uses: anthropics/claude-code-base-action@beta | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| JIRA_URL: https://hikky.atlassian.net | |
| JIRA_USERNAME: r.akai@vrhikky.com | |
| JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} | |
| ISSUE_NUMBER: ${{ needs.phase1-requirements.outputs.issue_number }} | |
| with: | |
| prompt: | | |
| 【フェーズ3: Pull Request作成と完了】 | |
| Jira番号 '${{ env.JIRA_NUMBER }}' のタスクについて、以下を実行してください: | |
| 1. フィーチャーブランチからmainブランチへのPull Requestを作成 | |
| 2. PRの説明に以下を含める: | |
| - Jiraタスクへのリンク | |
| - 実装内容の概要 | |
| - テスト結果 | |
| - レビューポイント | |
| - 破壊的変更の有無 | |
| 3. GitHub Issue #${{ env.ISSUE_NUMBER }} にPRリンクを追加 | |
| 4. Jiraタスクにコメントを追加(実装完了の報告) | |
| 5. Jiraタスクのステータスを"Code Review"または適切なステータスに変更 | |
| 6. pr.txtファイルにPR番号を出力 | |
| 注意: | |
| - PRのマージは手動レビュー後に行う | |
| - 自動テストが通ることを確認 | |
| - コードカバレッジを確認 | |
| mcp_config: ".mcp.json" | |
| allowed_tools: "Bash,View,GlobTool,GrepTool,BatchTool,Edit,Write,mcp__mcp-atlassian__jira_get_user_profile,mcp__mcp-atlassian__jira_get_issue,mcp__mcp-atlassian__jira_search,mcp__mcp-atlassian__jira_search_fields,mcp__mcp-atlassian__jira_get_project_issues,mcp__mcp-atlassian__jira_get_transitions,mcp__mcp-atlassian__jira_get_worklog,mcp__mcp-atlassian__jira_download_attachments,mcp__mcp-atlassian__jira_get_agile_boards,mcp__mcp-atlassian__jira_get_board_issues,mcp__mcp-atlassian__jira_get_sprints_from_board,mcp__mcp-atlassian__jira_get_sprint_issues,mcp__mcp-atlassian__jira_get_link_types,mcp__mcp-atlassian__jira_create_issue,mcp__mcp-atlassian__jira_batch_create_issues,mcp__mcp-atlassian__jira_batch_get_changelogs,mcp__mcp-atlassian__jira_update_issue,mcp__mcp-atlassian__jira_delete_issue,mcp__mcp-atlassian__jira_add_comment,mcp__mcp-atlassian__jira_add_worklog,mcp__mcp-atlassian__jira_link_to_epic,mcp__mcp-atlassian__jira_create_issue_link,mcp__mcp-atlassian__jira_remove_issue_link,mcp__mcp-atlassian__jira_transition_issue,mcp__mcp-atlassian__jira_create_sprint,mcp__mcp-atlassian__jira_update_sprint,mcp__mcp-atlassian__confluence_search,mcp__mcp-atlassian__confluence_get_page,mcp__mcp-atlassian__confluence_get_page_children,mcp__mcp-atlassian__confluence_get_comments,mcp__mcp-atlassian__confluence_get_labels,mcp__mcp-atlassian__confluence_add_label,mcp__mcp-atlassian__confluence_create_page,mcp__mcp-atlassian__confluence_update_page,mcp__mcp-atlassian__confluence_delete_page,mcp__mcp-atlassian__confluence_add_comment" | |
| anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
| - name: Workflow Summary | |
| run: | | |
| echo "## 🚀 自動化ワークフロー完了" >> $GITHUB_STEP_SUMMARY | |
| echo "Jira番号: ${{ env.JIRA_NUMBER }}" >> $GITHUB_STEP_SUMMARY | |
| if [ -f "issue.txt" ]; then | |
| echo "GitHub Issue: #$(cat issue.txt)" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| if [ -f "pr.txt" ]; then | |
| echo "Pull Request: #$(cat pr.txt)" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "### 実行されたフェーズ" >> $GITHUB_STEP_SUMMARY | |
| echo "✅ フェーズ1: 要件分析とIssue作成" >> $GITHUB_STEP_SUMMARY | |
| echo "✅ フェーズ2: 設計とTDD実装" >> $GITHUB_STEP_SUMMARY | |
| echo "✅ フェーズ3: Pull Request作成" >> $GITHUB_STEP_SUMMARY |