このプロジェクトについて
MergeMindは、コード変更に関する監査証跡を提示する必要があるチーム向けの、CI統合型マージリクエスト分析ツールです。GitHub ActionまたはGitLab CIジョブとして動作し、プルリクエスト/マージリクエストの差分を検査して、構造化された評価結果をコメントまたはノートとしてリクエストに投稿します。
## 生成される内容
本ツールは、各プルリクエストに対して以下を生成します:
- 構造化されたPRタイトルとサマリー
- リスクレベル評価(低 / 中 / 高)
- SOX、SOC2、ISO 27001管理策へのコンプライアンスマッピング(READMEの例では、認証の変更に対してSOX CC6.1、SOC2 CC6.1、ISO 27001 A.9.4を引用)
- 管理策のギャップ分析
- 修正推奨事項
READMEでは、「いくつかのファイルを更新し、バグを修正した」という曖昧な説明が、タイトル付きのサマリー、リスクレベル、管理策マッピング、特定されたギャップ(テストでカバーされていないMFA強制など)、およびmainへのマージ前に推奨されるアクションに置き換わる例が示されています。
## 動作方法
GitHub Actions:`pull_request`(opened, synchronize, reopened)でトリガーされるワークフローを追加します。差分範囲を解決するために`fetch-depth: 0`でチェックアウトし、`gusinfosec/mergemind@v1`を呼び出します。必須シークレットは`OPENAI_API_KEY`で、ライセンスキーのシークレットは任意です。アクションには`contents: read`および`pull-requests: write`権限が必要であり、コメントは最初のプッシュ時に作成され、その後はその場で更新されます。
GitLab CI:READMEによると、GitLabのパスはまだコピー&ペースト方式です。`examples/gitlab-ci.yml`をリポジトリにコピー(またはジョブをマージ)すると、MergeMindが`.mergemind`にクローンされ、そこで分析が実行されます。必要なCI/CD変数は`OPENAI_API_KEY`と、MRノートを投稿するための`api`スコープを持つ`MERGEMIND_GITLAB_TOKEN`パーソナルアクセストークンです。`MERGEMIND_GITLAB_HOST`はセルフマネージドインスタンスに対応しており、デフォルトはgitlab.comです。1行のアクションパッケージ化はGitHub Actionsのみの機能です。
## ライセンスと制限
無料プランでは、PRタイトル、サマリー、およびリスクレベルが提供されます。コンプライアンスマッピング、管理策のギャップ分析、修正推奨事項、およびトークン制限なしのフル差分分析は、ライセンス限定機能としてリストされています。ライセンスはStripeを通じて1回限り29ドルで購入し、ライセンスキーをリポジトリ/CIシークレットとして保存します。READMEには、キーなしで動作する無料プランがあるとも記載されています。なお、リポジトリのバッジにはMITライセンスと表示されていますが、いくつかのコア機能は有料キーによって制限されています。
## 記載されているセキュリティ体制
処理はユーザー自身のCIランナー内部で行われ、APIキーはCIシークレットとして保持されます。また、READMEにはコードは外部に保存されないと記載されています。ただし、差分は分析のためにOpenAI APIに送信されるため、自社のデータ取り扱い要件に照らして確認することが推奨されます。
## 実用上の検討事項
導入前に、OpenAI APIキーの予算と実行ごとのモデルコストを算定し、対象リポジトリの差分を外部モデルプロバイダーに送信することが許容されるかを判断してください。また、管理策のマッピングは監査意見ではなく、レビューアへのプロンプトとして扱うようにしてください。本プロジェクトはCyber Global Technologies LLCによって公開されており、サポート連絡先はteam@mergemind.dev、エンタープライズに関する問い合わせはinfo@cyberglobal.aiとなっています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.