Skip to main content

Configuring Dependabot security updates (Dependabot セキュリティ アップデートの構成)

Dependabot security updates または手動のプルリクエストを使用して、脆弱性のある依存関係を簡単に更新できます。

Dependabot security updates の設定について

Dependabot alerts と依存関係グラフを使用する任意のリポジトリで Dependabot security updates を有効にすることができます。 詳しくは、「Dependabot のセキュリティ アップデート」を参照してください。

個々のリポジトリまたは個人アカウントや組織が所有するすべてのリポジトリについて、Dependabot security updates を有効または無効にできます。 組織でセキュリティ機能を有効にする方法について詳しくは、「組織のセキュリティ保護」をご覧ください。

注: Dependabot security updates がリポジトリに対して有効になっている場合、Dependabot は、使用可能なパッチを持つすべての開いている Dependabot アラートを解決するために pull request を自動的に開こうとします。 どのアラートに対して Dependabot が pull request を開くかカスタマイズする場合は、Dependabot security updates を [無効] のままにし、オート トリアージ ルールを作成する必要があります。 詳しくは、「自動トリアージ ルールをカスタマイズして Dependabot アラートの優先度を設定する」を参照してください。

Dependabot とすべての関連する機能は、GitHub の利用規約でカバーされています。

サポートされているリポジトリ

個人アカウントまたは組織で Dependabot security updates の [新しいリポジトリに対して自動的に有効する] が有効になっている場合、新しく作成されたリポジトリの Dependabot security updates が、GitHub によって、自動的に有効になります。 詳しくは、「リポジトリの Dependabot security updates の管理」を参照してください。

セキュリティ更新が有効になっているリポジトリのフォークを作成すると、GitHub によってフォークの Dependabot security updates が自動的に無効になります。 その後、特定のフォークで Dependabot security updates を有効にするかどうかを決定できます。

リポジトリでセキュリティアップデートが有効になっておらず、理由が不明の場合は、まず以下の手順のセクションに記載されている指示に従って有効にしてみてください。 セキュリティ更新プログラムがまだ機能していない場合は、GitHub サポート ポータル に問い合わせてください。

リポジトリの Dependabot security updates を管理する

個人アカウントまたは組織が所有するすべての対象のリポジトリの Dependabot security updates を有効または無効にすることができます。 詳細については、「個人アカウントのセキュリティと分析設定を管理する」または「組織のセキュリティおよび分析設定を管理する」を参照してください。

個別のリポジトリに対して Dependabot security updates を有効または無効にすることもできます。

個別のリポジトリに対して Dependabot security updates を有効または無効にする

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  4. [コードのセキュリティと分析] の [Dependabot セキュリティ更新プログラム] の右側にある [有効] または [無効] をクリックして、機能を有効または無効にします。 パブリック リポジトリの場合、機能が常に有効になっていると、このボタンは無効になります。

Dependabot security updates を 1 つの pull request にグループ化する

注: Dependabot のグループ化されたプル要求はベータ版であり、変更される可能性があります。

表示される可能性がある pull request の数を減らすために、リポジトリまたは組織のグループ化されたセキュリティ アップデートを有効にすることができます。 これを有効にすると、Dependabot は、パッケージ エコシステムごとにセキュリティ アップデートを 1 つの pull request にグループ化します。 グループ化されたセキュリティ アップデートを使用するには、まず次の機能を有効にする必要があります。

注: グループ化されたセキュリティ アップデートを最初に有効にすると、Dependabot はすぐにグループ化された pull request の作成を試みます。 Dependabot が古い pull request を閉じ、新しい pull request を開くことに気付く場合があります。

Dependabot security updates のグループ化された pull request は、以下の方法のいずれかまたは両方で有効にすることができます。

  • 使用できるセキュリティ アップデートをできるだけ多く、ディレクトリ間やエコシステムごとにグループ化するには、Organization またはリポジトリの [コードのセキュリティと分析] 設定でグループ化を有効にします。
  • パッケージ名、開発と運用の依存関係、SemVer レベルによるグループ化など、グループ化をより細かく制御するには、リポジトリの dependabot.yml 構成ファイルに構成オプションを追加します。

注: dependabot.yml ファイル内で Dependabot security updates のグループルールを構成した場合、使用できるすべての更新は、指定したルールに従ってグループ化されます。 Dependabot は、Organization またはリポジトリ レベルでグループ化されたセキュリティ アップデートの設定も有効になっている場合、dependabot.yml で構成されていないディレクトリ間でのみグループ化されます。

個別のリポジトリに対してグループ化された Dependabot security updates を有効または無効にする

リポジトリ管理者は、リポジトリのグループ化されたセキュリティ アップデートを有効または無効にすることができます。 リポジトリ設定を変更すると、既定の Organization 設定がオーバーライドされます。 dependabot.yml ファイルで構成されたグループ ルールは、Organization またはリポジトリ レベルでグループ化されたセキュリティ アップデートを有効または無効にするためのユーザー インターフェイス設定をオーバーライドします。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  4. Code security and analysis の [Grouped security updates](グループ化されたセキュリティ アップデート) の右側にある [Enable](有効) または [Disable](無効) をクリックして、機能を有効または無効にします。

組織に対してグループ化された Dependabot security updates を有効または無効にする

組織のオーナーは、組織内のすべてのリポジトリのグループ化されたセキュリティ アップデートを有効または無効にすることができます。 ただし、Organization 内のリポジトリ管理者は、リポジトリの設定を更新して、既定の Organization 設定をオーバーライドできます。 dependabot.yml ファイルで構成されたグループ ルールは、Organization またはリポジトリ レベルでグループ化されたセキュリティ アップデートを有効または無効にするためのユーザー インターフェイス設定をオーバーライドします。

  1. GitHub.com の右上隅にあるプロファイル写真を選択し、次に自分の組織をクリックします。

    @octocat のプロファイル写真の下にあるドロップダウン メニューのスクリーンショット。 [Your organizations] (自分の組織) が濃いオレンジ色の枠線で囲まれています。

  2. 組織の隣の [設定] をクリックします。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  4. Code security and analysis の下で機能の右にある [Disable all](すべてを無効) または [Enable all](すべてを有効) をクリックします。

  5. 必要に応じて、 [Automatically enable for new repositories](新しいリポジトリの場合は自動的に有効にする) を選択すると、組織の新しいリポジトリでグループ化された Dependabot security updates が有効になります。

構成ファイルを使用した既定の動作のオーバーライド

リポジトリに dependabot.yml ファイルを追加することで、Dependabot security updates の既定の動作をオーバーライドできます。 dependabot.yml ファイルを使用すると、グループ化をより細かく制御し、Dependabot security updates 設定の既定動作をオーバーライドできます。

groups オプションを applies-to: security-updates キーと共に使用して (パッケージ マネージャーごとに) 依存関係のセットを作成し、Dependabot が 1 つの pull request を開いて複数の依存関係を同時に更新できるようにします。 パッケージ名 (patternsexclude-patterns キー)、依存関係の種類 (dependency-type キー)、SemVer (update-types キー) でグループを定義できます。

Dependabot は、dependabot.yml ファイルに表示される順序でグループを作成します。 依存関係の更新が複数のグループに属している可能性がある場合、一致する最初のグループにのみ割り当てられます。

セキュリティ アップデートのみを必要とし、_バージョン_更新を除外する場合は、特定の package-ecosystem のバージョン更新を防ぐために open-pull-requests-limit0 に設定できます。

セキュリティ アップデートに対して使用できる構成オプションについて詳しくは、「dependabot.yml ファイルの構成オプション」をご覧ください。

# Example configuration file that:
#  - Has a private registry
#  - Ignores lodash dependency
#  - Disables version-updates
#  - Defines a group by package name, for security updates for golang dependencies

version: 2
registries:
  example:
    type: npm-registry
    url: https://example.com
    token: ${{secrets.NPM_TOKEN}}
updates:
  - package-ecosystem: "npm"
    directory: "/src/npm-project"
    schedule:
      interval: "daily"
    # For Lodash, ignore all updates
    ignore:
      - dependency-name: "lodash"
    # Disable version updates for npm dependencies
    open-pull-requests-limit: 0
    registries:
      - example- package-ecosystem: "gomod"
    groups:
      golang:
        applies-to: security-updates
        patterns:
          - "golang.org*"

注記: Dependabot でセキュリティ更新プログラムにこの構成を使用するには、 directoryは マニフェスト ファイルへのパスの必要があり、target-branchを指定しないでください。

参考資料