Skip to main content

dependabot.yml ファイルについて

          `dependabot.yml`は、リポジトリ内の依存関係の自動更新を制御します。

この記事の内容

          `dependabot.yml` ファイルはオプションの構成ファイルであり、Dependabot がリポジトリ内の依存関係 (主に_バージョン更新プログラム_だけでなく_セキュリティ更新プログラム_) を監視および更新する方法をきめ細かく制御できます。

          `dependabot.yml` ファイルがない場合でも、Dependabot は、リポジトリ設定で Dependabot security updates を有効にしている場合でも、脆弱な依存関係のセキュリティ更新プログラムを作成できます。 ただし、自動バージョンの更新プログラムを受け取ったり、更新スケジュールやその他の構成オプションを制御したりすることはありません。

          `dependabot.yml` ファイルでは YAML 構文が使用されます。 YAML を初めて使う場合、詳しくは「[YAML を 5 分で学習する](https://www.codeproject.com/Articles/1214409/Learn-YAML-in-five-minutes)」をご覧ください。

メモ

Dependabot alerts は、dependabot.yml ファイルではなく、リポジトリまたは organization の [Settings] タブで構成されます。「Dependabot アラートの構成」を参照してください。

          `dependabot.yml` ファイルの機能

dependabot.yml ファイルは、Dependabot が依存関係を更新する方法を管理します。 このファイルを使用すると、次のことができます。

バージョンアップデートの場合

  • 自動バージョン更新を有効にする
  • 監視するパッケージ エコシステムとディレクトリを指定する
  • 更新スケジュールを設定する
  • pull request ラベル、担当者、レビュー担当者、およびコミット メッセージをカスタマイズする
  • 更新または無視する依存関係を制御する
  • プライベート レジストリの認証を構成する

セキュリティ更新のために

  • ラベル、担当者、レビュー担当者を使用してセキュリティ更新プログラムのプル要求をカスタマイズする
  • セキュリティ更新プログラムのターゲット ブランチを定義する
  • プライベート レジストリ認証を構成する
  • 開いている pull request に制限を設定する

          `dependabot.yml` ファイルを格納する場所

このファイルは、リポジトリの .github ディレクトリ (通常は main) に格納する必要があります。 パスは .github/dependabot.yml です。

          `dependabot.yml` ファイルのしくみ

リポジトリ内の dependabot.yml ファイルを追加または更新すると、Dependabot は構成を読み取り、定義されたスケジュールに従って指定されたパッケージ エコシステムの監視を開始します。 Dependabot が利用可能な更新プログラムを検出すると、構成で指定したカスタマイズ規則に従って、依存関係の変更を含むプルリクエストが作成されます。

構成ファイルを監視するには、各パッケージ エコシステムに対して次のキーが必要です。

  •         **
            `version`
            **: Dependabot 構成構文のバージョンを指定する最上位フィールド。
    
  •         **
            `updates`
            **: 更新プログラムを監視する各パッケージ エコシステムを定義する最上位セクション。
    
  •         **
            `package-ecosystem`
            **: `updates`で定義され、更新するパッケージ マネージャー (npm、pip、Docker など) を指定します。
    
  •         **
            `directories` または `directory`**: 各 `package-ecosystem` エントリで定義され、マニフェストまたは依存関係定義ファイルの場所を指定します。
    
  •         **
            `schedule.interval`
            **: 各 `package-ecosystem` エントリの下で定義され、バージョンの更新 (`daily`、 `weekly`、または `monthly`) を確認する頻度を設定します。
    

基本的な例

npm の依存関係を毎日監視する最小限の dependabot.yml ファイルを次に示します。

YAML
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"

次のステップ