自動修正
概要
自動修正機能は、セキュリティ診断で検出された脆弱性に対して、Takumi が自動的に修正のためのパッチを生成し、Pull Request を作成する機能です。
Shisho Cloud byGMO の Web 画面から利用できます。
前提条件
自動修正機能を利用するには、修正したいコードが含まれるリポジトリに対するアクセス権限を持つ Write 用の GitHub App を連携させる必要があります。詳細は GitHub 連携 を参照してください。
本機能のリリースに伴い、GitHub App の「Contents」権限が Read から Read and Write に変更されました。すでに GitHub App をインストール済 みの組織については、GitHub から権限更新のリクエストがメールで送信されます。自動修正機能を利用する際には、事前にこのリクエストを承認してください。
使い方
自動修正機能では、修正対象の脆弱性ごとに「修正タスク」を作成し、そのタスクを単位として自動修正を実施します。
1. タスクの作成
タスクの作成方法は次の 2 通りです。
1-A: 診断結果から作成する(推奨)
診断結果ページで「脆弱性を修正」ボタンを押し、表示されるメニューにおいて修正したい脆弱性を選択し、「タスク作成に進む」ボタンをクリックします。
過去に実施した診断結果については、「脆弱性を修正」ボタンが利用できない場合があります。その場合は、「1-B: 自動修正タブから直接作成する」の方法をお試しください。

その後、表示されるタスク作成画面で、以下の情報を入力・確認します。
- タスク名:脆弱性のタイトルが自動入力される
- 出力言語:レポートの出力言語(日本語/英語)を選択する
- リポジトリ:修正対象のコードが含まれる GitHub リポジトリを選択する
- ブランチ:修正のベースとなるブランチを指定する
- 修正対象の脆弱性:脆弱性のレポートが自動入力される

1-B: 自動修正タブから直接作成する
「診断」ページ内の「自動修正」タブを開き、「タスクを作成」ボタンをクリックします。表示されるダイアログで、以下の情報を入力します。
- タスク名:識別しやすい名前を入力する
- 出力言語:レポートの出力言語(日本語/英語)を選択する
- リポジトリ:修正対象の GitHub リポジトリを選択する
- ブランチ:修正のベースとなるブランチを指定する
- 修正対象の脆弱性:修正対象の脆弱性の詳細を、診断レポートからコピーして入力する
2. 自動修正の実行
タスク作成後、タスク一覧のメニューから「自動修正を実行」を選択すると、当該タスクが「実行中」の状態に移行します。
タスクが実行されている間、Takumi は以下の処理を自動的に行います。
- リポジトリのクローン
- 脆弱性の分析
- 修正コードの作成
- 修正内容の正当性を保証するためのユニットテストの作成
- 修正内容に関するレポートの作成
処理には数分から数十分程度かかる場合があります。
3. 結果の確認
処理が完了するとタスクのステータスが「レビュー中」に変わります。タスク一覧でタスク名をクリックすると、詳細ダイアログが開きます。

詳細ダイアログでは、以下の内容を確認できます。
- 「修正案」:生成された修正内容を確認できる
- レポート:脆弱性の分析結果と修正内容の説明
- 差分:生成された修正コードの差分
- 「修正対象の脆弱性」