Skip to main content

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

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

注: この機能を使用するには、サイト管理者が お使いの GitHub Enterprise Server インスタンスの Dependabot updatesを設定する必要があります。 詳しくは、「エンタープライズ向けの Dependabot の有効化」を参照してください。

Enterprise 所有者が Enterprise レベルでポリシーを設定している場合、Dependabot updatesを有効または無効にできない場合があります。 詳しくは、「エンタープライズのコード セキュリティと分析のためのポリシーの適用」をご覧ください。

Dependabot security updates の設定について

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  4. [コードのセキュリティと分析] の [Dependabot セキュリティ更新プログラム] の右側にある [有効] または [無効] をクリックして、機能を有効または無効にします。

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

表示される可能性がある pull request の数を減らすために、リポジトリまたは Organization のグループ化されたセキュリティ アップデートを有効にすることができます。 これを有効にすると、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 で、リポジトリのメイン ページに移動します。

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

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

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

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

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

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

  1. GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。

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

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

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

  5. 必要に応じて、 [Automatically enable for new repositories](新しいリポジトリの場合は自動的に有効にする) を選択すると、Organization の新しいリポジトリでグループ化された 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を指定しないでください。

参考資料