Claude Code GitHub Actionsで重要な仕様を見逃さないレビュー自動化
株式会社Berry / Takashi Asanuma
EM / フルスタックエンジニア
| 利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
|---|---|---|---|
Claude Code GitHub Actions | 10名以下 | 2025年6月 | B to B |
| 利用機能 | Claude Code GitHub Actions |
|---|---|
| ツールの利用規模 | 10名以下 |
| ツールの利用開始時期 | 2025年6月 |
| 事業形態 | B to B |
アーキテクチャ

アーキテクチャの意図・工夫
重要な仕様である監査ログについては、実装チェックの要件定義を行い、どのような場合に監査ログが必要かを明確に定義しました。
.vueファイルで@clickイベントが含まれている- ユーザーのボタン操作を起点とする処理
データ操作(CRUD)を行っている
repositories/配下の関数呼び出し- insert, update, delete, createなどの操作
状態変更を伴う操作
- approve, reject, activate, deactivateなど
- データ一括操作(bulk operation, import, export)
監査ログが必要と判定された場合、以下の実装が求められます。
- 適切なインポート
import { createAuditLogCommon } from "@/utils/auditlog/common";
// または
import { createDocumentAuditLog } from "@/utils/auditlog/document";
- 監査ログ関数の呼び出し
// データ操作と同じ関数内または呼び出し先で
await createAuditLogCommon({
action: "delete",
target_type: "document",
target_id: documentId,
details: { reason: deleteReason }
});
- 適切なパラメータの設定
- action: 操作の種類
- target_type: 対象オブジェクトの種類
- target_id: 対象の識別子
- details: 操作の詳細情報
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
サービスとして提供しているQMSmart(品質管理システム)では、文書の作成・更新・削除、承認フロー、ユーザー操作など、あらゆるデータ操作に対して監査ログの記録が求められます。これは単なる要件ではなく、ER/ES指針(厚生労働省による医薬品等の製造販売業者等における電子記録・電子署名の活用に関するガイドライン)の観点から必須の機能です。
従来は、プルリクエストレビュー時に人間の目でチェックしていましたが、以下の問題が頻発していました。
- 見落としのリスク:複数ファイルの変更で監査ログ実装を見逃す
- 属人化:レビュアーによってチェック精度にばらつき
- レビュー工数:毎回の手動確認で時間がかかる
- 学習コスト:新メンバーが監査ログのパターンを覚える負担
実際に、重要な機能で監査ログが抜けていたことが本番リリース直前に発覚し、急ぎ追加を行ったことがあります。
どのような状態を目指していたか
以下のような操作では、監査ログの実装が欠かせないため、プルリクエスト時に自動で監査ログ実装をチェックする仕組みにより漏れを防ぐことを目指しました。
- 文書の作成・更新・削除
- 承認・却下などの状態変更
- ユーザー権限の変更
- 一括操作(インポート・エクスポート)
導入の成果
どのような成果が得られたか
Claude AIによる監査ログ実装チェックの自動化により、以下の効果を得ることができました。
品質向上:
- 監査ログ実装漏れの撲滅
- 一貫性のある実装品質
- コンプライアンス要件の確実な対応
開発効率:
- レビュー工数の大幅削減
- 属人化の解消
- 新メンバーの学習支援
導入に向けた社内への説明
上長・チームへの説明
Claude Codeによるコードレビューの自動化を行っていたので、監査ログの実装仕様とチェックを指示するプロンプトを作成、CIによる自動化を提案して即採用されました。
活用方法
週約100件のPRに対して自動チェックを実施しています。
監査ログの要件を特定のメンバーしかチェックできないような状態になっていたら、レビューのペースは格段に下がっていたと思います。
よく使う機能
.github/workflows/auditlog_check.ymlで実装したワークフローの核心部分です。
name: AuditLog Check
on:
pull_request:
types: [opened, synchronize]
branches:
- release/*
- development
paths:
- "src/components/**"
defaults:
run:
shell: bash
concurrency:
group: ${{ github.repository }}-${{ github.event.number || github.head_ref || github.sha }}-${{ github.workflow }}-auditlog-check
cancel-in-progress: true
jobs:
auditlog-check:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # 変更ファイルを比較するため全履歴を取得
- name: Get changed files
id: changed-files
run: |
# プルリクエストの変更ファイル一覧を取得
git diff --name-only origin/${{ github.base_ref }}...HEAD > changed_files.txt
echo "Changed files:"
cat changed_files.txt
- name: AuditLog Implementation Check
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
timeout_minutes: "30"
direct_prompt: |
# Audit Log チェック
## 目的
プルリクエストで変更されたファイルの中で、ボタンによるアクションがあり、
データの操作(作成・更新・削除)を行っている場合に、
適切なauditlog処理が実装されているかチェックする。
## チェック対象の条件
1. `.vue` ファイルで `@click` イベントが含まれている
2. データ操作(作成・更新・削除)を行っている(repositories/ 配下の関数呼び出し)
3. 以下のパターンのいずれかに該当する:
- リポジトリ関数で CRUD 操作(insert, update, delete, create など)
- 状態変更(approve, reject, activate, deactivate など)
- データ一括操作(bulk operation, import, export など)
## チェック内容
上記条件に該当するファイルで、以下のauditlog処理が実装されているかチェック:
### 必要なauditlog実装
1. `src/utils/auditlog/` 配下の関数のインポート
2. データ操作と同じ関数内またはその呼び出し先でauditlog関数の呼び出し
3. 適切なauditlogパラメータの設定
### 対象となるauditlog関数の例
- `createAuditLogCommon` (基本関数)
- `createDocumentAuditLog`, `createDocumentVersionAuditLog`
- `createEventAuditLog`, `createTrainingAuditLog`
- その他 `src/utils/auditlog/` 配下の関数
## 実行手順
1. 変更ファイル一覧(changed_files.txt)を確認
2. 対象条件に該当するファイルを特定
3. 該当ファイルでauditlog処理の実装状況をチェック
4. 実装漏れがある場合は詳細レポートを作成
5. 問題がない場合は「✅ AuditLog チェック完了」とレポート
## レポート形式
実装漏れがある場合:
```
❌ AuditLog実装チェックで問題を検出
### 問題のあるファイル
- `ファイルパス`: 問題の詳細
- 検出されたデータ操作: 具体的な操作内容
- 欠けているauditlog処理: 必要な処理の説明
- 推奨される実装: 具体的な実装例
### 推奨アクション
各ファイルで適切なauditlog処理を追加してください。
```
問題がない場合:
```
✅ AuditLog チェック完了
チェック対象ファイル: X件
auditlog実装済み: Y件
対象外ファイル: Z件
```
ポイントは、プルリクエストのたびに変更ファイルを特定し、Claudeに渡すことです。
Claudeへの指示(プロンプト)は、検出精度の要となる部分です。Claude Code GitHub ActionsのBeta版では、direct_promptパラメータを使用します。この投稿を書いている時点でv1が利用可能になっています。Betaとv1の違いについては、公式ドキュメントを参照ください。
ツールの良い点
- GitHubへClaudeを導入するだけなので簡単に始められる
ツールの課題点
- betaからv1へは変更点が多いので注意が必要
今後の展望
プルリクエスト内の変更範囲については、Claude Code GitHub Actionsで手軽に実装内容をチェックすることができます。しかし、プロジェクト全体を把握して、他機能との整合性や影響を確認するには、まだまだ課題がありそうです。
チームでは、プルリクエストのブランチをローカルに反映し、Claude Codeを使ってプロジェクト全体をチェック・レビュー、必要な操作を洗い出してもらいChrome DevToolsやPlaywright上で自動実行してチェックするなど、全体の影響把握を効率化することも試みています。
株式会社Berry / Takashi Asanuma
EM / フルスタックエンジニア
よく見られているレビュー
株式会社Berry / Takashi Asanuma
EM / フルスタックエンジニア
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法

.png)

