コンテンツにスキップ

Claude Code Actions@LLM

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. Claude Code Actionsとは

自律型のAIエージェントである。

人間のレビューを一度も介さずにIssue対処からマージできるのが理想である。

もし良くないコードがマージされてしまったとしても、品質が大きく低下しないIssue(フロントエンドのUIロジックのみのもの、変更行が N 行未満のもの、DBテーブルの変更を含まないものなど)をとりあえずやらせる。

次は運用しながら決めていく。

  • Issueの作成も自動化させるのか
  • どういうIssueをやらせるのか
  • 誰がどのタイミングで発火Goさせるのか


02. セットアップ

GitHub

Issue や PR に @claude この問題を調査してください とコメントすると、Action がコメント本文を依頼として取り込み、結果を同じスレッドに返信する。

修正を依頼した場合、Issue では変更ブランチと PR 作成リンクを用意し、開いている PR ではそのブランチを更新する。

事前に /install-github-app で Claude の GitHub App と ANTHROPIC_API_KEY secret を設定し、以下のワークフローを .github/workflows/claude.yml としてデフォルトブランチに配置する。

name: Claude Code

on:
  issue_comment:
    types: [created]

# 既定のトークン権限を無効化し、ジョブごとに必要な権限を追加する。
permissions: {}

concurrency:
  group: claude-${{ github.repository }}
  cancel-in-progress: false

jobs:
  claude:
    # メンションを含む、許可された投稿者の新規コメントだけを処理する。
    if: >-
      contains(github.event.comment.body, '@claude') &&
      contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'),
               github.event.comment.author_association)
    runs-on: ubuntu-latest
    timeout-minutes: 30
    permissions:
      contents: write
      issues: write
      pull-requests: write
      # ClaudeのGitHub App認証に使うOIDCトークンの取得を許可する。
      id-token: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
          # Git設定にGitHubトークンを保存しない。
          persist-credentials: false
      - name: Respond to Claude mention
        uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          # ユーザーが投稿した「@claude ...」のコメント全文を、依頼のプロンプトとして受け取る。
          # ActionがIssue・PRの参考データと依頼を取り込み、Claudeへ渡す。
          # promptは指定せず、メンションへの応答モードを使用する。
          trigger_phrase: "@claude"
          # CLI引数で、エージェントの最大ターン数を指定する。
          claude_args: "--max-turns 50"