/analyze
コメントを投稿してもワークフローが開始されない1. 権限設定の確認
# 必要な権限が設定されているか確認
permissions:
contents: read
issues: write # Issue分析に必要
pull-requests: write # PRレビューに必要
2. ワークフローの有効化
3. ブランチ保護ルールの確認
Error: Bad credentials
Error: Invalid API key
1. シークレットの確認
# 設定されているシークレットの確認(名前のみ)
gh secret list
# 必要なシークレット
- ANTHROPIC_API_KEY
- OPENAI_API_KEY
- GEMINI_API_KEY
2. APIキーの有効性確認
# Claude API
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-3-haiku-20240307","messages":[{"role":"user","content":"Hi"}],"max_tokens":10}'
# OpenAI API
curl https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY"
# Gemini API
curl "https://generativelanguage.googleapis.com/v1beta/models?key=$GEMINI_API_KEY"
Error: maximum context length is 100000 tokens
Error: Request too large
1. 差分の制限
with:
max_diff_lines: 5000 # デフォルト10000から削減
2. レビュータイプの変更
with:
review_type: 'quick' # detailedからquickに変更
3. ファイルの除外
# .gitattributesでlinguist-generatedを設定
*.min.js linguist-generated
*.lock linguist-generated
Error: Rate limit exceeded
Error: Too many requests
1. API使用量の確認
2. 実行頻度の調整
# 条件付き実行の追加
if: |
github.event.pull_request.additions < 1000 &&
!contains(github.event.pull_request.labels.*.name, 'skip-ai-review')
3. キャッシュの活用
- uses: actions/cache@v4
with:
path: ~/.cache/ai-reviews
key: $-ai-$
Error: The operation was canceled
Error: Job was cancelled
1. タイムアウト値の調整
jobs:
analyze:
timeout-minutes: 30 # デフォルト360から調整
2. 処理の分割
# 大きなPRの場合、ファイルごとに分割
- name: Review part 1
if: steps.check.outputs.file_count > 10
run: |
# 最初の10ファイルのみ処理
Error: API rate limit exceeded for installation ID
1. GH_PATの使用
secrets:
GH_PAT: $ # より高い制限
2. GraphQL APIの活用
// REST APIの代わりにGraphQLを使用
const query = `
query($owner: String!, $repo: String!, $number: Int!) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $number) {
files(first: 100) {
nodes { path }
}
}
}
}
`;
- name: Debug情報
run: |
echo "Event: $"
echo "PR: $"
echo "Repo: $"
# actを使用したローカル実行
act pull_request -e event.json
strategy:
matrix:
ai: [claude, openai, gemini]
# ドキュメントのみの変更はスキップ
if: |
!contains(join(github.event.pull_request.files.*.filename, ','), '.md')
- uses: actions/cache@v4
with:
path: |
~/.cache/pip
~/.npm
key: $-$
問題が解決しない場合は、以下の情報を含めてIssueを作成してください:
## 環境情報
- リポジトリ: [公開/プライベート]
- ワークフローバージョン: [v3/v4/v5]
- 発生日時: YYYY-MM-DD HH:MM (JST)
## エラー内容
[エラーメッセージをここに貼り付け]
## 再現手順
1.
2.
3.
## 期待される動作
## 実際の動作
## ワークフローログ
[Actionsのログへのリンク]