注: この機能を使用するには、サイト管理者が your GitHub Enterprise Server instanceの Dependabot updatesを設定する必要があります。 詳細については、「企業に対する Dependabot の有効化」を参照してく� さい。
依存関係のバージョン更新について
リポジトリの .github
ディレクトリに dependabot.yml 構成ファイルをチェックインして、Dependabot version updates を有効にします。 すると、Dependabot は設定した依存関係を最新の状態に保つためにプルリクエストを発行します。 更新するパッケージマネージャーの依存関係ごとに、パッケージマニフェストファイルの� �所と、それらのファイルにリストされている依存関係の更新をチェックする� �度を指定する必要があります。 セキュリティ更新プログラ� の有効化の詳細については、「Dependabot security updatesの構成」を参照してく� さい。
最初にバージョンアップデートを有効にすると、古くなった依存関係が大量にあり、中には最新バージョンまでにいくつものバージョンが存在しているものもあるかもしれません。 Dependabotは、有効化されるとすぐに古くなった依存関係をチェックします。 設定が更新するマニフェストファイルの数に応じて、設定ファイルの追� 後数分のうちに、バージョンアップデートの新しいPull Requestが発行されるかもしれません。 Dependabotは、設定ファイルに対するその後の変更に対しても更新を実行します。
Dependabotは、アップデートの失敗後にマニフェストファイルを変更した際にもPull Requestを作成することがあります。 これは、アップデート失敗の原� となった依存関係の削除などのマニフェストへの変更によって、新たにトリガーされたアップデートが成功するかもしれないためです。
Pull Requestを管理可能でレビューしやすく保つために、Dependabotは依存関係を最新バージョンにし始めるためのPull Requestを最大で5つまで発行します。 次にスケジュールされているアップデートの前にこれらの最初のPull Requestの一部をマージした� �合、残りのPull Requestは上限まで次のアップデート時にオープンとなります。 オープン pull request の最大数は、open-pull-requests-limit
構成オプションを設定することで変更できます。 詳しい情� �については、「依存関係の更新をカスタマイズする」を参照してく� さい。
既定では、マニフェストで明示的に定義されている直接の依存関係のみが、Dependabot version updates によって最新の状態に保たれます。 ロック ファイルで定義されている間接的な依存関係に対する更新を受け取ることができます。 詳細については、「dependabot.yml ファイルの構成オプション」を参照してく� さい。
セキュリティあるいはバージョンアップデートを実行する際に、エコシステ� によってはアップデートが成功したことを検証するためにすべての依存関係をソースから解決できなければならないことがあります。 マニフェストあるいはロックファイルにプライベートの依存関係が含まれているなら、Dependabotはそれらの依存関係がホストされている� �所にアクセスできなければなりません。 Organizationのオーナーは、同じOrganization内のプロジェクトに対する依存関係を含むプライベートリポジトリへのアクセス権をDependabotに付与できます。 詳細については、「Managing security and analysis settings for your organization (組織のセキュリティと分析の設定を管理する)」を参照してく� さい。 リポジトリの dependabot.yml 構成ファイルで、プライベート レジストリへのアクセスを構成できます。 詳細については、「dependabot.yml ファイルの構成オプション」を参照してく� さい。 さらに、 Dependabot はすべてのパッケージマネージャーに対して、プライべートな GitHub 依存関係をサポートしません。 詳しい情� �については、「GitHub Dependabot のバージョン アップデートについて」と「GitHub 言語サポート」を参照してく� さい。
Dependabot version updates を有効化する
dependabot.yml 構成ファイルをリポジトリにコミットして、Dependabot version updates を有効にします。
- リポジトリの
.github
ディレクトリに dependabot.yml 構成ファイルを作成します。 version
を追� します。- プライベート レジストリに依存関係がある� �合は、必要に応じて、認証情� �が含まれている
registries
セクションを追� します。 updates
セクションを追� し、Dependabot で監視したい各パッケージ モニターのエントリを追� します。- パッケージマネージャーごとに、以下を使用します。
package-ecosystem
: パッケージ マネージャーを指定します。directory
: マニフェストや他の定義ファイルの� �所を指定します。schedule.interval
: 新しいバージョンをチェックする� �度を指定します。
- リポジトリの
.github
ディレクトリにある dependabot.yml 構成ファイルを確認します。
すべての構成オプションについて詳しくは、「dependabot.yml ファイルの構成オプション」を参照してく� さい。
dependabot.yml ファイルの例
次の dependabot.yml ファイルの例では、npm と Docker の 2 つのパッケージ マネージャーのバージョン アップデートを構成します。 このファイルがチェックインされると、Dependabot が、デフォルトブランチのマニフェストファイルで古い依存関係がないかをチェックします。 古い依存関係が見つかった� �合、デフォルトブランチに対してプルリクエストを発行して依存関係を更新します。
# Basic dependabot.yml file with
# minimum configuration for two package managers
version: 2
updates:
# Enable version updates for npm
- package-ecosystem: "npm"
# Look for `package.json` and `lock` files in the `root` directory
directory: "/"
# Check the npm registry for updates every day (weekdays)
schedule:
interval: "daily"
# Enable version updates for Docker
- package-ecosystem: "docker"
# Look for a `Dockerfile` in the `root` directory
directory: "/"
# Check for updates once a week
schedule:
interval: "weekly"
上記の例では、Docker の依存関係がとても古い� �合、その依存関係が最新の状態になるまで、まずは daily
(毎日) スケジュールを設定して、その後 Weekly (毎週) スケジュールに戻すことができます。
フォークのバージョン更新を有効にする
フォークでバージョン更新を有効にする� �合は、追� の手� �があります。 dependabot.yml 構成ファイルが存在していると、フォークでのバージョン アップデートが自動的に有効になることはありません。 これにより、元のリポジトリからの dependabot.yml 構成ファイルを含む変更をプルするときに、フォーク所有者が意図せずバージョン アップデートを有効にしてしまうことがなくなります。
フォークでは、Dependabot を明示的に有効にする必要もあります。
- で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下の [分析情� �] をクリックします。 3. 左側のサイドバーで、 [Dependency graph] (依存関係グラフ) をクリックします。 4. [依存関係グラフ] で、 [Dependabot] をクリックします。
- [Dependabot を有効にする] で、 [Dependabot を有効にする] をクリックします。
バージョン更新のステータスを確認する
バージョン アップデートを有効にすると、リポジトリの依存関係グラフにある [Dependabot] タブが設定されます。 このタブには、Dependabot が監視するように設定されているパッケージマネージャーと、Dependabot が最後に新しいバージョンをチェックした日時が表示されます。
情� �については、「バージョン更新用に設定された依存関係を一覧表示する」を参照してく� さい。
Dependabot version updates を無効にする
リポジトリから dependabot.yml ファイルを削除することで、バージョン アップデートを完全に無効にすることができます。 通常、1 つ以上の依存関係やパッケージマネージャーの更新を一時的に無効にする必要がある� �合があります。
- パッケージ マネージャー: 構成ファイル内で
open-pull-requests-limit: 0
を設定するか、関連するpackage-ecosystem
をコメントアウトして無効にします。 - 特定の依存関係: アップデートから除外したいパッケージまたはアプリケーションの
ignore
属性を追� して無効にします。
依存関係を無効にすると、ワイルドカードを使用して、関連する一連のライブラリを照合できます。 除外するバージョンを指定することもできます。 これは、ライブラリの更新をブロックする必要がある� �合や、API の重大な変更をサポートするために作業を保留する必要があるが、使用するバージョンのセキュリティ修正を取得する� �合に特に便利です。
一部の依存関係のバージョン更新を無効にする例
次の dependabot.yml ファイルの例には、別の方法で一部の依存関係の更新を無効にしながら他の更新を引き続き行うことができるようにする例が含まれています。
# dependabot.yml file with updates
# disabled for Docker and limited for npm
version: 2
updates:
# Configuration for Dockerfile
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
# Disable all pull requests for Docker dependencies
open-pull-requests-limit: 0
# Configuration for npm
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
ignore:
# Ignore updates to packages that start with 'aws'
# Wildcards match zero or more arbitrary characters
- dependency-name: "aws*"
# Ignore some updates to the 'express' package
- dependency-name: "express"
# Ignore only new versions for 4.x and 5.x
versions: ["4.x", "5.x"]
# For all packages, ignore all patch updates
- dependency-name: "*"
update-types: ["version-update:semver-patch"]
既存の無視設定のチェックの詳しい情� �については、「dependabot.yml ファイルの構成オプション」を参照してく� さい。