# 最近マージされたコードの品質をAIで改善する

最近マージされたコードの GitHub Code Quality 結果を調べ、 Copilot Autofix で修正するか、修復作業を Copilot クラウドエージェントに委任します。

> \[!NOTE]
> GitHub Code Quality は現在 パブリック プレビュー にあり、変更される可能性があります。
> パブリック プレビュー の間、Code Quality は課金されませんが、Code Quality スキャンでは GitHub Actions 分が消費されます。

## イントロダクション

このチュートリアルでは、最近既定のブランチにマージされた、 Code Qualityの AI を利用したコード分析によって検出された品質の問題を調査し、修復する方法について説明します。

最近マージされたファイルの品質を向上させると、リポジトリ内の技術的負債が削減され、他の開発者がアクティブな開発中のファイルで作業しやすくなります。

###

```
          Code Quality には 2 つの防御線があります

          Code Quality は、品質の問題に関するプル要求とコメントをスキャンし、pull request がマージされた後に **2 回目の AI スキャンを実行** します。 2 種類のスキャンでは、補完的なテクノロジが使用されます。
```

\*
**プル要求スキャンでは** 、 CodeQL ルールを使用して問題を特定します。 この分析は徹底的にテストされ、コードが品質規則と一致しない場所を特定するのに適しており、多くのファイルを分析できます。 ただし、コーディング言語のサブセットがサポートされており、ルールがない問題を特定することはできません。

* ```
          **最近マージされたファイル スキャンでは** 、大規模な言語モデルを使用して、最近変更されたファイルを分析し、最大 5 ファイルの結果を報告します。 この分析では、ルールによって制限されることなく、すべての言語のコードを調べ、 CodeQL ルールが提供する内容を超えるコンテキスト分析情報と提案を提供します。
  ```

### \[前提条件]

* ```
          Code Quality が有効になっている場合は、 [AUTOTITLE](/code-security/code-quality/how-tos/enable-code-quality) を参照してください。
  ```
* ```
          Code Qualityが有効になってから、少なくとも 1 つのプル要求がマージされています。
  ```

## 1. リポジトリの AI 提案を表示する

既定のブランチで最近マージされたファイルを Code Quality スキャンすると、 **AI の結果** ビューに結果が表示され、最大 5 ファイルの結果が表示されます。

1. リポジトリの \[ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** ] タブに移動します。
2. クリックして **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code-review" aria-label="code review" role="img"><path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z"></path></svg>コードの品質** を展開し、**AI の結果** をクリックします。

> \[!NOTE]
> リポジトリが非アクティブな場合、または LLM 分析で既定のブランチへの最近のプッシュでコード品質を向上させる方法を提案できなかった場合、このビューは空です。

## 2. リポジトリの推奨される改善点を確認する

```
          **
          AI の結果
          **ページには、各ファイルが特定された品質問題の数と、ファイルが既定のブランチにプッシュされた日時と共に一覧表示されます。
```

* ファイル名をクリックすると、検出された品質の問題と推奨される修正プログラムの詳細が表示されます。

![コード品質の "AI の結果" ビューのスクリーンショット。](/assets/images/help/code-quality/ai-suggestions-repo.png)

## 3. 修復作業を委任するか、プル要求を自分で開く

プル要求を開いて、推奨される自動修正をファイルに適用したり、修復作業を Copilot クラウドエージェントに委任したりできます。
Copilotに作業を割り当てるには、Copilot クラウドエージェント ライセンスが必要です。 <br> <a href="https://github.com/features/copilot/plans?ref_product=copilot&ref_type=purchase&ref_style=button" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline"> <span>サインアップ Copilot</span><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-link-external" aria-label="link external icon" role="img"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a>

### 作業を委任する Copilot クラウドエージェント

提案された変更をプロンプトとして使用して、プル要求を開いてファイルの改善を行うように クラウド エージェント に依頼できます。 提案された変更が気に入り、複数のファイルに修正を加えるプルリクエストを開きたい場合、これが最適なオプションです。

pull request の作成を委任するには:

* ```
          **複数のファイル:** 含めるファイルを選択したら、ファイル一覧のヘッダーで**Copilotに選択したものを割り当て**をクリックします。
  ```

* <c0>ファイルが1つ:</c0> ファイルに<c2>\[<c1>割り当て]</c2>をクリックします。

  ```
          クラウド エージェントが作業を設定している間、遅延が発生します。 pull request が開き、作業が進行中の場合は、pull request へのリンクを含むバナーが表示されます。

          Copilot クラウドエージェントの作業を追跡できます。
  ```

* pull request では、作業の進行状況に応じて概要が更新されます。

* ```
          [エージェント ページ](https://github.com/copilot/agents?ref_product=copilot&ref_type=engagement&ref_style=text)またはセッション ログの使用。 「[AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/track-copilot-sessions)」を参照してください。
  ```

### 自分のプルリクエストを作成する

pull request を自分で開いて、自動修正候補を適用できます。 これは、次の場合に最適なオプションです。

* プル要求を開く前に、ローカルまたは GitHub Desktop で変更を処理する必要がある
* にアクセスすることはできません。 Copilot クラウドエージェント

> \[!NOTE]
> 自分で pull request を開くと、修正をコミットできるファイルは一度に1つだけです。 複数のファイルを一度に修正するには、 Copilot クラウドエージェントを使用する必要があります。

#### pull request を開く

1. ファイル名をクリックすると、検出された品質の問題の詳細が表示されます。

2. 問題と推奨される修正プログラムを確認します。

3. \[**Copilotに割り当てる**] ドロップダウンを展開し、<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-pull-request" aria-label="Pull request" role="img"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg>\[**pull request を開く**] をクリックして、既定のオプションを \[プル要求を開く] に変更します。 ユーザー設定が記憶されます。

   ![コード品質の "AI の結果" ビューのスクリーンショット。](/assets/images/help/code-quality/ai-suggestions-repo-fixes.png)

4. \[ **pull request を開く** ] をクリックして、コミット オプションのダイアログを開きます。

5. \[ **変更のコミット]** をクリックして、修正を含むプル要求を作成します。

## 4. コンテキストを持つ pull request レビュー担当者を提供する

コードの変更を提案する理由に関するコンテキストを提供することは、チーム メンバーに pull request のレビューを促す最善の方法です。
Copilot クラウドエージェントを使用した場合、pull request の概要には、pull request によって修正された問題の詳細が既に含まれています。

```
          GitHub Code Quality ビューからプル要求を直接開いた場合、pull request の概要は "AI の結果" ビューにリンクされます。 
          AI の結果
```

ビューからプル要求の概要に説明の一部をコピーすることもできます。

![GitHub Code Quality によって作成された pull request の概要のスクリーンショット。](/assets/images/help/code-quality/user-pr-ai-findings.png)

## 5. 変更がAI の結果に与える影響を確認する

pull request をマージした後に "AI の結果" ビューに戻ると、修正した結果は一覧に表示されなくなります。

## 次のステップ

* ```
          Copilot クラウドエージェントが開発タスクの迅速化にどのように役立つかについて説明します。 「[AUTOTITLE](/copilot/tutorials/cloud-agent/get-the-best-results)」を参照してください。
  ```
* ```
          GitHub Code Qualityディスカッションで[](https://github.com/orgs/community/discussions/177488)に関するフィードバックを提供します。
  ```