> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/docs/docs-ja/autofix-to/configure/autofix-pr-configuration.md).

# AutoFix の PR 設定

## プルリクエスト設定 <a href="#pull-request-configuration" id="pull-request-configuration"></a>

AutoFix のプルリクエストは、次の設定でニーズに合わせて構成できます [「PR 設定」設定](https://app.aikido.dev/issues/fix/settings)。以下のフィールドを変更できます:

* **タイトルの接頭辞:** 社内プロセスに合わせてタイトルをカスタマイズします。
* **ラベル:** PR に特定のラベルを追加して、並べ替えや追跡を容易にします。ラベルはコンマ区切りです。次を使用します `$AUTOFIX_TYPE` と `$SEVERITY` プレースホルダーを使用して、AutoFix のタイプ（例: dependency、sast）と重要度（例: high、medium）をラベルとして含めます。
* **ブランチ名:** Autofix が作成するブランチの接頭辞をカスタマイズします。
* **コミットメッセージ:** PR 内のコミットメッセージの接頭辞をカスタマイズします。
* **概要:** 必要に応じて、PR ごとに追加メッセージを含めます。たとえば、エンジニア向けのカスタム指示や追加のコンテキストを追加できます。
* **ドラフト PR を作成:** レビュー可能な状態ではなく、ドラフト PR を作成します。
* **PR の自動マージ:** Aikido はこのために GitHub、GitLab、Azure DevOps の組み込み自動マージ機能を利用します。詳細はこちら [こちら](/docs/docs-ja/autofix-to/automation-and-merging/auto-merge-autofix-pull-requests.md).
* **PR 用タスクを作成:** コンプライアンス上の理由で重要です。接続済みのタスクトラッカーに新しいタスクを自動作成し、作成された PR にリンクします。

次の `$TASK_REF` プレースホルダーは、PR タイトル、ブランチ名、コミットメッセージで使用して、 [タスクを PR にリンクできます](/docs/docs-ja/autofix-to/configure/linking-tasks-and-prs.md).

{% hint style="info" %}
Aikido は AutoFix PR のデフォルトレビュー担当者の設定をサポートしていません。適切な人がレビューするように、リポジトリで CODEOWNERS と必須レビューを使用してください。参照: [AutoFix PRのデフォルトレビュアーを割り当てる](/docs/docs-ja/autofix-to/faq/assigning-default-reviewers-for-autofix-prs.md).
{% endhint %}

## リポジトリ固有の設定

Aikido UI のグローバル AutoFix 設定は、Aikido ワークスペース内のすべてのリポジトリに適用されます。リポジトリ固有の設定を構成するには、次を使用します `.aikido` リポジトリのルートにあるファイル。このファイルで指定された設定はグローバル設定を上書きします。

たとえば、次の設定では:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    branch_prefix: "aikido-"
    title_prefix: "Aikido "
    commit_prefix: "[fix] "
    labels: "security"
    draft_pr: true
    auto_merge: true
    create_task_for_pr: true
    task_title_prefix: "[AIK] "
    disable_codeowners_as_reviewers: true
    self_approve_pr: true
  automated:
    disabled: false
    dependency:
      update_policy: minor_and_patch_versions_only
      single_pr_for_repo: false
      lockfile_groups:
        - group_name: service1
          lockfiles:
            - 'service1/*'
  base_branch: develop
```

{% endcode %}

* 以下の `pr_config`:
  * ブランチ名は次で始まります `aikido-` [\[+\]](#branch-prefixes)
  * PR タイトルは次で始まります `Aikido` [\[+\]](#pull-request-title-prefixes)
  * コミットは次で始まります `[fix]` [\[+\]](#commit-prefixes)
  * PR にはラベルが付与されます `security` [\[+\]](#labels)
  * ドラフト PR を作成します [\[+\]](#draft-pr)
  * 必要な承認が得られると、PR は SCM（例: GitHub）によって自動マージされます [\[+\]](#auto-merge)
  * PR 用のタスク（例: Jira）が作成されます [\[+\]](#create-task-for-pr)
  * タスク（例: Jira）のタイトルは次で始まります `[AIK]` [\[+\]](#task-title-prefix)
  * *GitLab 固有:* codeowners は PR のレビュー担当者として追加されません [\[+\]](#disabling-codeowners-as-reviewers)
  * *Bitbucket 固有:* AutoFix は自身の PR を承認します [\[+\]](#self-approve-bitbucket-prs)
* 以下の `automated`:
  * リポジトリで自動 AutoFix が有効になります [\[+\]](#disabling-automated-autofixes-at-the-repo-level)
  * 以下の `dependency`:
    * マイナーおよびパッチバージョンのアップグレードのみが実行されます [\[+\]](#setting-the-update-policy)
    * リポジトリ内のロックファイル用に複数の PR を作成します [\[+\]](#grouping-autofixes-per-lockfile-or-per-repo)
    * 以下の `lockfile_groups`
      * 次にあるすべてのロックファイルに対して単一の PR が作成されます `service1` ディレクトリ。リポジトリ内のその他のロックファイルには、個別の PR が作成されます [\[+\]](#lockfile-groups)
* global:
  * 次から開始する PR を作成します `develop` ブランチ [\[+\]](#set-a-custom-base-branch)

以下のセクションでは、各設定パラメータを詳しく説明します。

### **ブランチ接頭辞**

ブランチ接頭辞は、リポジトリのルートレベルに次のファイルを追加することで、リポジトリごとに設定できます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    branch_prefix: "prefix-for-branch-"
```

{% endcode %}

AutoFix は次を使用します `branch_prefix` その特定のリポジトリ用のブランチを作成する際の値。この例では、AutoFix は次のようなブランチを作成します `prefix-for-branch-update-dependency-xyz`.

次で定義されたブランチ接頭辞 `.aikido` ファイルは、UI で設定されたブランチ接頭辞より優先されます。

### ブランチテンプレート

AutoFix は、ブランチ名にランダムな識別子を追加して一意のブランチ名を作成します。このランダムな識別子は、ブランチ命名ルールに一致しない可能性があります。この場合、ブランチテンプレートを使用してブランチ名の形式を完全に定義できます。

多くの組織では、タスクとブランチのリンクを強制するためにこれらのブランチ命名ルールが使用されています。次の設定により、AutoFix は特定のブランチ名を作成します:

{% code title=".aikido" %}

```
autofix:
  pr_config:
    branch_template: fix/$TASK_REF
```

{% endcode %}

次の `$TASK_REF` は、プルリクエストで修正された課題にリンクされているタスクに置き換えられます。例: `fix/AIK-1234` 単一タスクの場合、または `fix/AIK-1234-AIK-4567` 複数タスクの場合。

次を有効にしている場合 `プルリクエスト用タスクを作成` 有効にすると、自動作成されたタスク識別子がブランチ名で使用されます。

厳格なブランチ形式の場合は、次の変数を使用できます:

* `$TASK_REF_LOWER`: 小文字形式のタスク識別子
* `$TASK_REF_0` : 最初のタスク識別子
* `$TASK_REF_0_LOWER` : 小文字形式の最初のタスク識別子

### プルリクエストタイトルの接頭辞

プルリクエストタイトルの接頭辞は、リポジトリごとに次を追加して設定できます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    title_prefix: "Title Prefix"
```

{% endcode %}

AutoFix はプルリクエストのタイトルを次で開始します `Title Prefix` 。次で定義されたタイトル接頭辞 `.aikido` ファイルは、UI で設定されたブランチ接頭辞より優先されます。

### **プルリクエストタイトルテンプレート**

プルリクエストのタイトルは、リポジトリのルートにあるファイルにプルリクエストタイトルテンプレートを追加することで、さらにカスタマイズできます `.aikido` リポジトリのルートに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```json
autofix:
  pr_config:
    title_template: "Aikido: $MSG - security"
```

{% endcode %}

AutoFix は次を設定します `$MSG` プルリクエストの作成時。この機能により、Aikido AutoFix PR に接頭辞、接尾辞、または固定タイトルを設定できます。両方の `title_prefix` と `title_template` が指定された場合、テンプレートが優先されます。

### **コミット接頭辞**

コミット接頭辞は、リポジトリごとに次を追加して設定できます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    commit_prefix: "fix: "
```

{% endcode %}

AutoFix は次を使用します `commit_prefix` その特定のリポジトリ用のコミットを作成する際の値。この例では、AutoFix は次のようなコミットを作成します `fix: updating package uuid`

次で定義されたコミット接頭辞 `.aikido` ファイルは、UI で設定されたコミット接頭辞より優先されます。

### コミットテンプレート

コミットメッセージは、ファイルにコミットメッセージテンプレートを追加することで、さらにカスタマイズできます `.aikido` リポジトリのルートに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```json
autofix:
  pr_config:
    commit_template: "fix: $MSG - security"
```

{% endcode %}

AutoFix は次を設定します `$MSG` コミットメッセージの作成時。この機能により、接頭辞、接尾辞、または固定コミットメッセージを設定できます。両方の `commit_prefix` と `commit_template` が指定された場合、テンプレートが優先されます。

### ラベル

ラベルは、リポジトリごとに次を追加して設定できます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    labels: "aikido,security,$AUTOFIX_TYPE,$SEVERITY"
```

{% endcode %}

AutoFix は次を使用します `labels` その特定のリポジトリ用のプルリクエストを作成する際の値。この例では、AutoFix は両方の `aikido` と `security` ラベルをプルリクエストに追加します。

**プレースホルダー**

* `$AUTOFIX_TYPE`: PR の作成時に AutoFix タイプがラベルとして追加されます。使用可能な値: `dependency`, `sast`, `iac`, `quality`, `container`, `pentest`, `audit`, `gradle`, `dotnet`, `zen`
* `$SEVERITY`: プルリクエストで修正される課題の最大重要度が、PR 作成時にラベルとして追加されます。使用可能な値: `high`, `medium`, `low` .

次で定義されたラベル `.aikido` ファイルは、UI で設定されたラベルより優先されます。次のファイルで定義されている場合、 `.aikido` ファイルでは、UI で設定されたラベルは省略されます。

### ドラフト PR

ドラフト PR は、リポジトリごとに次を追加して設定できます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    draft_pr: true
```

{% endcode %}

上記の例では、特定のリポジトリ用のプルリクエストをドラフトとして作成します。

次にあるドラフト PR 設定 `.aikido` ファイルは、UI のドラフト PR 設定より優先されます。

### 自動マージ

自動マージは、リポジトリごとに次を追加して設定できます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    auto_merge: true
```

{% endcode %}

上記の例では、特定のリポジトリ内のすべての PR で自動マージが有効になります。

次にある自動マージ設定 `.aikido` ファイルは、UI で設定された構成より優先されます。

#### 条件付き自動マージ（タイプと重要度別）

自動マージは、AutoFix タイプと修正対象の課題の重要度に基づいて条件付きで有効にできます。以下の例では、critical の SAST 課題を修正するプルリクエストで自動マージを有効にします。

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    auto_merge:
      sast:
        enabled: true
        severity: critical
```

{% endcode %}

**サポートされる設定値**

* AutoFix タイプ: `dependency`, `sast`, `iac`, `container`, `code-quality` と `pentest`
* 重要度レベル: `critical`, `high`, `medium` と `low`

**重要度ロジック**

重要度が次に設定されている場合 `medium`、critical、high、medium の課題に対応するすべてのプルリクエストが自動マージされます。

プルリクエストが異なる重要度の複数の課題に対応する場合、最も重要度の高い課題が設定されたしきい値を満たせば自動マージされます。例: 自動マージを critical の重要度に設定した場合、critical と high の両方の課題を含むプルリクエストも自動マージされます。

#### 指示ベースの自動マージ

さらに細かな制御が必要な場合は、自動マージを有効にする条件を自然言語の指示で指定できます。

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    auto_merge:
      instructions: >
        すべての依存関係がパッチバージョンに更新された場合、依存関係の更新を自動マージする
        またはマイナーバージョンのみに更新された場合。メジャーバージョンへの更新は絶対に自動マージしない。
        修正の信頼度が高く、かつ
        変更が単一のファイルにのみ及ぶ場合に限り、SAST 修正を自動マージする。
        その他は自動マージしない。
```

{% endcode %}

これらの指示に提供されるコンテキストには、次が含まれます:

* AutoFix タイプ
* 重要度レベル
* 信頼度（SAST、IaC、コード品質の課題の場合）
* PR のタイトルと説明
* PR 内の変更ファイル一覧
* PR 内の変更ファイルの差分

### PR 用タスクを作成

Aikido でプルリクエストが開かれると、AutoFix は課題トラッカーにタスクを自動作成します。\
これは、コンプライアンス標準で求められる修正の追跡可能性を維持するのに役立ちます。

特定のリポジトリでのタスク作成は、次を追加することで有効または無効にできます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    create_task_for_pr: true
```

{% endcode %}

上記の例では、特定のリポジトリ用のタスク作成を有効にします。次の設定 `.aikido` ファイルは、UI の設定より優先されます。

### タスクタイトルの接頭辞

「PR 用タスクを作成」が有効な場合、タスクタイトルの接頭辞はリポジトリごとに次を追加して設定できます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    task_title_prefix: "[AIK] "
```

{% endcode %}

この例では、PR 用に作成されるタスクが次で始まるようにします `[AIK]` 特定のリポジトリ内で。

次の設定 `.aikido` ファイルは、UI の設定より優先されます。

### レビュー担当者としての CODEOWNERS を無効化

GitLab では、Aikido AutoFix は次を追加します `CODEOWNERS` をマージリクエストのレビュー担当者として追加します（ロックファイルの CODEOWNERS が 10 人未満の場合）。この動作は、次を追加することで無効にできます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    disable_codeowners_as_reviewers: true
```

{% endcode %}

### BitBucket PR の自己承認

BitBucket では、Aikido AutoFix は作成した PR を承認できます。ワークフローで PR の作成者による PR 承認が必要な場合は、この設定を有効にしてください。

{% code title=".aikido" %}

```yaml
autofix:
  pr_config:
    self_approve_pr: true
```

{% endcode %}

### リポジトリレベルで自動 AutoFix を無効化

自動 AutoFix は、まず Aikido UI で有効にする必要があります。UI ですでに有効になっている特定のリポジトリを除外するには、次の設定を `.aikido` リポジトリのルートレベルにあるファイルに追加します:

{% code title=".aikido" %}

```yaml
autofix:
  automated:
    disabled: true
```

{% endcode %}

**注:** 設定 `disabled: false` は **ありません** リポジトリの自動 AutoFix を自動的に有効化します。この設定は、Aikido UI で機能がグローバルに有効になっている場合に、リポジトリを除外するためにのみ使用されます。

#### AutoFix タイプごとに自動 AutoFix を無効化

自動 AutoFix は、特定の AutoFix タイプに対して無効にできます。たとえば、他の AutoFix タイプの自動 PR は有効のまま、自動 SAST 修正を無効にできます。以下の例は、サポートされているすべてのタイプを無効にする方法を示します（`sast`, `iac`, `dependency`, `container`, `pentest`、および `コード品質`）。詳細な設定を使用します:

{% code title=".aikido" %}

```yaml
autofix:
  automated:
    sast:
      disabled: true
    iac:
      disabled: true
    dependency:
      disabled: true
    container:
      disabled: true
    pentest:
      disabled: true
    コード品質:
      disabled: true
```

{% endcode %}

### 更新ポリシーの設定

更新ポリシーは、AutoFix のタイプごとに個別に設定できます。リポジトリのルートにある次の設定 `.aikido` ファイルは、UI で指定された設定を上書きします。

{% code title=".aikido" %}

```yaml
autofix:
  automated:
    dependency:
      update_policy: upgrade_all_packages | minor_and_patch_versions_only | critical_and_high_only | critical_issues_only
    sast:
      update_policy: all | critical_and_high_only | critical_issues_only
      confidence: high | medium
    iac:
      update_policy: all | critical_and_high_only | critical_issues_only
      confidence: high | medium
    pentest:
      update_policy: all | critical_and_high_only
```

{% endcode %}

次の場合 `dependency` AutoFix では、次の更新ポリシーを設定できます:

* `upgrade_all_packages` : バージョンに関係なくすべてのパッケージをアップグレードする
* `minor_and_patch_versions_only` : 新しいマイナーおよびパッチバージョンにのみアップグレードし、メジャーバージョンの更新は行わない
* `critical_and_high_only` : critical および high の重要度の課題についてのみバージョンをアップグレードする
* `critical_issues_only` : critical の重要度の課題についてのみバージョンをアップグレードする

次の場合 `sast` AutoFix では、次の更新ポリシーを設定できます:

* `all` : 課題の重要度に関係なく SAST 修正を実行する
* `critical_and_high_only` : critical および high の重要度の課題に対してのみ SAST 修正を実行する
* `critical_issues_only` : critical の重要度の課題に対してのみ SAST 修正を実行する
* さらに、 **最小信頼度レベル** は次で設定できます `confidence` フィールド。これは次に設定されています `medium` デフォルト。信頼度を次に設定することで `high`、AutoFix は信頼度の高い修正に対してのみ自動 PR を作成します。

次の場合 `iac` AutoFix では、次の更新ポリシーを設定できます:

* `all` : 課題の重要度に関係なく IaC 修正を実行する
* `critical_and_high_only` : critical および high の重要度の課題に対してのみ IaC 修正を実行する
* `critical_issues_only` : critical の重要度の課題に対してのみ IaC 修正を実行する
* さらに、 **最小信頼度レベル** は次で設定できます `confidence` フィールド。これは次に設定されています `medium` デフォルト。信頼度を次に設定することで `high`、AutoFix は信頼度の高い修正に対してのみ自動 PR を作成します。

次の場合 `pentest` AutoFix では、次の更新ポリシーを設定できます:

* `all` : 課題の重要度に関係なくペンテスト修正を実行する
* `critical_and_high_only` : critical および high の重要度の課題に対してのみペンテスト修正を実行する

### ロックファイルごとまたはリポジトリごとの AutoFix のグループ化

デフォルトでは、Aikido AutoFix は個別のプルリクエストを作成します **ロックファイルごとに** リポジトリ内で。これにより、標準的なプロジェクトでは変更が分離され、レビューしやすくなります。

単一チームが所有するロックファイルが多数あるリポジトリでは、多数の個別 PR を受け取ると煩雑になる場合があります。リポジトリごとに単一のプルリクエストを有効にすると、管理上の負担と CI/CD の使用量を削減できます。

この動作を変更するには、次を追加します `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  automated:
    dependency:
      single_pr_for_repo: true
```

{% endcode %}

### ロックファイルグループ

デフォルトでは、Aikido AutoFix はリポジトリ内のロックファイルごとに個別のプルリクエストを作成します。これにより、標準的なプロジェクトでは変更が分離され、レビューしやすくなります。

相互依存するロックファイルを持つリポジトリでは、ロックファイルグループを作成して、それらのロックファイル内のすべての依存関係 AutoFix を単一のプルリクエストにまとめることができます。これにより、共有バージョン解決の場合の重複したプルリクエストを回避し、変更をレビューしやすくなります。

ロックファイルグループは、名前とロックファイルパターンのリストを指定して設定します。たとえば、次の内容を次に追加すると `.aikido` リポジトリのルートレベルにあるファイルに追加すると、AutoFix は次にあるすべてのロックファイルに対して単一の自動依存関係更新プルリクエストを作成します `service1` フォルダーとそのサブフォルダー。

{% code title=".aikido" %}

```yaml
autofix:
  automated:
    dependency:
      lockfile_groups:
        - group_name: service1
          lockfiles:
            - 'service1/*'
```

{% endcode %}

### カスタムベースブランチを設定

デフォルトでは、Aikido AutoFix はスキャンされたブランチに基づいてプルリクエストを作成します。異なるブランチ戦略のワークフローがある場合は、次でカスタムベースブランチを設定できます `.aikido` リポジトリのルートレベルに、次の内容を含むファイルを配置します:

{% code title=".aikido" %}

```yaml
autofix:
  base_branch: develop
```

{% endcode %}

スキャンされたブランチと、次で設定したベースブランチが同期していることを確認してください `.aikido` ファイル。例: 依存関係の AutoFix を実行し、次の `package.json` がスキャンされたブランチと比較してベースブランチ上で異なる内容を持つ場合、プルリクエストはベースブランチから作成され、スキャンされたブランチから開始した場合に期待する結果を含まない可能性があります。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.aikido.dev/docs/docs-ja/autofix-to/configure/autofix-pr-configuration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
