コンテンツにスキップ

AutoFix PRの設定

“PR Configuration” settingsを使うことで、AutoFixのプルリクエストを自社のニーズに合わせて設定できます。以下のフィールドを変更できます。

  • Title Prefix: 社内プロセスに合わせてタイトルをカスタマイズします
  • Labels: 並び替えや追跡をしやすくするため、PRに特定のラベルを追加します
  • Branch name: AutoFixが作成するブランチのプレフィックスをカスタマイズします
  • Commit Message: PR内のコミットメッセージのプレフィックスをカスタマイズします
  • Summary: 各PRに追加のメッセージを任意で含めることができます。例えば、エンジニア向けのカスタム指示や追加のコンテキストを記載できます。
  • Create Draft PR: レビュー可能な状態ではなく、ドラフトPRとして作成します。
  • Auto-Merge PR: AikidoはこれをGithub、Gitlab、Azure DevOpsの組み込みのauto-merge機能に依存して実現しています。詳しくはこちらをご覧ください。
  • Create Task for PR: コンプライアンス上の理由で重要です。接続されたタスク管理ツールに新しいタスクを自動作成し、作成されたPRにリンクします。

プルリクエストとタスクの連携

Section titled “プルリクエストとタスクの連携”

AutoFixのプルリクエストをタスクに連携する方法は2つあり、両方を同時に使用できます。

  1. 既存タスクとの連携

PRで修正されるissueのタスク識別子は、デフォルトでブランチ名に含まれます。ワークスペースがタスク管理ツールと連携している場合、タスク管理ツールによってPRが対応するタスクに自動的にリンクされます。

タスク参照プレースホルダー($TASK_REF )は、以下のPull Request Configurationのフィールドで使用できます。

  • ブランチプレフィックス
  • コミットメッセージ
  • PRタイトル
  1. PRごとに新しいタスクを作成

AutoFixのPRごとにタスクを作成することで、AutoFixのPRのレビューとマージを担当者にアサインできます。AutoFixの設定で「Create task for PR」を有効にしてください。既存タスクとリンクされているかどうかにかかわらず、AutoFixのPRごとにタスクが作成されます。

Note: このオプションは現在、Jira と Jira DC でのみ利用可能です。

Aikido UIのグローバルなAutoFix設定は、Aikidoワークスペース内のすべてのリポジトリに適用されます。リポジトリ固有の設定を行うには、リポジトリのルートにある.aikidoファイルを使用します。このファイルで指定した設定は、グローバル設定より優先されます。

例えば、この設定では

.aikido

autofix:
single_pr_for_repo: true
pr_config:
branch_prefix: "aikido-"
title_prefix: "Aikido "
commit_prefix: "[fix] "
labels: "security"
draft_pr: false
auto_merge: true
create_task_for_pr: true
task_title_prefix: "[AIK] "
disable_codeowners_as_reviewers: true
  • リポジトリ内のすべてのロックファイルに対して単一のPRを作成します
  • ブランチ名はaikido-で始まります
  • PRタイトルはAikidoで始まります
  • コミットは[fix]で始まります
  • PRにはsecurityラベルが付与されます
  • PRはドラフトPRになりません
  • 必要な承認が揃った時点で、PRはSCM(例:Github)によって自動マージされます
  • PRに対してタスク(例:Jira)が作成されます
  • タスク(例:Jira)のタイトルは[AIK]で始まります
  • Gitlab固有: codeownersはPRのレビュアーとして追加されません

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

ブランチプレフィックスは、リポジトリのルートレベルに以下の内容を含む.aikidoファイルを追加することで、リポジトリごとに設定できます。

.aikido

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

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

.aikidoファイルで定義されたブランチプレフィックスは、UIで設定されたブランチプレフィックスよりも優先されます。

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

多くの組織では、これらのブランチ命名規則はタスクとブランチの連携を強制するために使用されています。以下の設定により、AutoFixは特定のブランチ名を作成します。

.aikido

autofix:
pr_config:
branch_template: fix/$TASK_REF

$TASK_REFは、Pull Requestで修正されるissueにリンクされたタスクに置き換えられます。例えば、単一タスクの場合はfix/AIK-1234、複数タスクの場合はfix/AIK-1234-AIK-4567となります。

Create task for Pull Requestが有効になっている場合、自動作成されたタスク識別子がブランチ名で使用されます。

ブランチ形式が厳格で単一のチケットのみを許可する場合は、$TASK_REF_0を使用することで単一のタスク識別子のみを含めることができます。

プルリクエストタイトルのプレフィックス

Section titled “プルリクエストタイトルのプレフィックス”

プルリクエストタイトルのプレフィックスは、リポジトリのルートレベルに以下の内容を含む.aikidoファイルを追加することで、リポジトリごとに設定できます。

.aikido

autofix:
pr_config:
title_prefix: "Title Prefix"

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

コミットプレフィックスは、リポジトリのルートレベルに以下の内容を含む.aikidoファイルを追加することで、リポジトリごとに設定できます。

.aikido

autofix:
pr_config:
commit_prefix: "fix: "

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

.aikidoファイルで定義されたコミットプレフィックスは、UIで設定されたコミットプレフィックスよりも優先されます。

ラベルは、リポジトリのルートレベルに以下の内容を含む.aikidoファイルを追加することで、リポジトリごとに設定できます。

.aikido

autofix:
pr_config:
labels: "aikido,security"

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

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

ドラフトPRは、リポジトリのルートレベルに以下の内容を含む.aikidoファイルを追加することで、リポジトリごとに設定できます。

.aikido

autofix:
pr_config:
draft_pr: true

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

.aikidoファイルでのドラフトPR設定は、UIでのドラフトPR設定よりも優先されます。

自動マージは、リポジトリのルートレベルに以下の内容を含む.aikidoファイルを追加することで、リポジトリごとに設定できます。

.aikido

autofix:
pr_config:
auto_merge: true

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

.aikidoファイルでの自動マージ設定は、UIでの自動マージ設定よりも優先されます。

AutoFixは、Aikidoでプルリクエストが作成されると、issueトラッカーに自動的にタスクを作成します。
これはコンプライアンス基準で求められる修正のトレーサビリティを維持するのに役立ちます。

タスク作成は、リポジトリのルートレベルに以下の内容を含む.aikidoファイルを追加することで、特定のリポジトリごとに有効化・無効化できます。

.aikido

autofix:
pr_config:
create_task_for_pr: true

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

タスクタイトルのプレフィックス

Section titled “タスクタイトルのプレフィックス”

「create task for PR」が有効な場合、タスクタイトルのプレフィックスは、リポジトリのルートレベルに以下の内容を含む.aikidoファイルを追加することで、リポジトリごとに設定できます。

.aikido

autofix:
pr_config:
task_title_prefix: "[AIK] "

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

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

CODEOWNERSをレビュアーとして追加しない設定

Section titled “CODEOWNERSをレビュアーとして追加しない設定”

Gitlabの場合、Aikido AutoFixは(ロックファイルに対するCODEOWNERSが10人未満であれば)CODEOWNERSをMerge Requestのレビュアーとして追加します。この動作は、リポジトリのルートレベルに以下の内容を含む.aikidoファイルを追加することで無効化できます。

.aikido

autofix:
pr_config:
disable_codeowners_as_reviewers: true

ロックファイル単位・リポジトリ単位でのAutoFixのグループ化

Section titled “ロックファイル単位・リポジトリ単位でのAutoFixのグループ化”

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

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

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

.aikido

autofix:
single_pr_for_repo: true