Back

GitHub リポジトリでDependabot アラートを無効にする方法

GitHub リポジトリでDependabot アラートを無効にする方法

数ヶ月間休眠状態にある個人プロジェクトを管理している場合や、教育目的のデモリポジトリを維持している場合、次のような悩みをお持ちでしょう:Dependabotが受信トレイをセキュリティアラートで溢れさせ、更新する予定のない依存関係に対してプルリクエストを開き続けます。この問題を解決しましょう。

このガイドでは、個別のGitHubリポジトリに対してDependabotアラートと自動プルリクエストを無効にする方法を、GitHubインターフェースと設定ファイルの両方を使って詳しく説明します。Dependabotの3つの機能の違いと、それぞれを無効にする方法についても説明します。

重要なポイント

  • Dependabotは3つの独立した機能で構成されています:アラート、セキュリティアップデート、バージョンアップデート
  • GitHubのUIまたは設定ファイルを通じてDependabotを無効にできます
  • パブリックリポジトリでは、GitHubによって特定のDependabot機能が永続的に有効になっている場合があります
  • モノレポや部分的にアクティブなプロジェクトでは選択的な無効化を検討してください

Dependabotの3つの機能を理解する

Dependabotを無効にする方法に進む前に、何を無効にしようとしているのかを理解することが重要です。Dependabotは単一の機能ではなく、実際には3つの異なるサービスです:

  1. Dependabotアラート: 依存関係のセキュリティ脆弱性に関する通知
  2. Dependabotセキュリティアップデート: 既知の脆弱性を修正する自動プルリクエスト
  3. Dependabotバージョンアップデート: すべての依存関係を最新に保つ自動プルリクエスト(脆弱なもの以外も含む)

それぞれを独立して無効にできるため、受信する通知とPRを細かく制御できます。

方法1: GitHub設定を通じてDependabotを無効にする

Dependabotを無効にする最も迅速な方法は、リポジトリの設定ページを使用することです。この方法は一回限りの変更に最適で、コードは必要ありません。

Dependabotアラートの無効化

  1. GitHubリポジトリに移動します
  2. Settingsをクリックします(表示されない場合は、まずドロップダウンメニューをクリック)
  3. サイドバーで「Security」セクションを見つけ、Code security and analysisをクリックします
  4. 「Dependabot alerts」を見つけてDisableをクリックします

Dependabotセキュリティアップデートの無効化

上記と同じパスに従いますが、代わりに「Dependabot security updates」を探してください。Disableをクリックして自動セキュリティPRを停止します。

注意:パブリックリポジトリでは、GitHubのポリシーにより一部のDependabot機能が永続的に有効になっている場合があります。

バージョンアップデートについてはどうでしょうか?

バージョンアップデートは異なる方法で設定されます。以前にdependabot.ymlファイルを通じて有効にしていた場合は、その設定を削除するか、以下のファイルベースの方法を使用して無効にする必要があります。

方法2: 設定ファイルを使用してDependabotを無効にする

より永続的またはバージョン管理された変更には、.github/dependabot.yml設定ファイルを使用します。このアプローチは以下の場合に理想的です:

  • Dependabotが無効になっている理由を文書化したい場合
  • チームメンバー間で一貫した設定を適用したい場合
  • 他の機能を維持しながら特定の機能を選択的に無効にしたい場合

バージョンアップデートを完全に無効にする

Dependabotバージョンアップデートを無効にするには、プルリクエストの制限をゼロに設定します:

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "daily"
    open-pull-requests-limit: 0

この設定は、Dependabotにアップデートをチェックするが、プルリクエストを開かないよう指示します。このパターンをプロジェクトの各パッケージエコシステム(npm、pip、bundlerなど)に適用してください。

特定の依存関係のアップデートを無効にする

時にはDependabotをアクティブに保ちながら、特定の問題のある依存関係を無視したい場合があります:

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    ignore:
      - dependency-name: "lodash"
      - dependency-name: "react"
        versions: ["16.x", "17.x"]

すべてのDependabot設定を削除する

Dependabotバージョンアップデートを完全に無効にするには、リポジトリから.github/dependabot.ymlファイルを単純に削除してください。このファイルがなければ、Dependabotはバージョンアップデートを全くチェックしません。

一般的なシナリオと解決策

アーカイブされた、または非アクティブなプロジェクト

真に使われなくなったプロジェクトの場合、GitHub UIを通じてDependabotの3つの機能すべてを無効にしてください。二度と実行されることのないコードについてセキュリティアラートを受信する意味はありません。

デモおよび教育用リポジトリ

Dependabotアラートは有効にしておき、自動PRは無効にすることを検討してください。これにより、自動プルリクエストによる混乱なしに脆弱性について情報を得ることができます。学生や読者は、自動プルリクエストによる混乱なしにセキュリティ警告を確認できます。

混在したアクティビティを持つモノレポ

設定ファイルアプローチを使用して、維持されているコードではアクティブに保ちながら、非アクティブなディレクトリではDependabotを選択的に無効にします:

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/active-app"
    schedule:
      interval: "weekly"
  - package-ecosystem: "npm"
    directory: "/archived-app"
    schedule:
      interval: "daily"
    open-pull-requests-limit: 0

重要な考慮事項

Dependabotセキュリティ機能を無効にする場合、脆弱な依存関係を手動で監視・更新する責任を受け入れることになります。アクティブなプロジェクトでは、完全に無効にする前に以下の代替案を検討してください:

  • 完全に無効にするのではなく、アップデート頻度を減らす
  • アップデートをグループ化して、より少ない、より大きなPRを受信する
  • 全面的な無効化ではなく、特定の依存関係に対して無視ルールを使用する

Dependabotアラートを無効にしても脆弱性が消えるわけではなく、通知が停止するだけであることを覚えておいてください。

まとめ

GitHubのUIをクリックすることを好むか、設定ファイルを管理することを好むかに関わらず、Dependabotの無効化は簡単です。重要なのは、Dependabotの3つの機能のうちどれを実際に無効にしたいかを理解し、ワークフローに適した方法を選択することです。休眠プロジェクトでは積極的な無効化が合理的です。それ以外の場合は、完全な無効化よりも選択的な設定を検討してください。

よくある質問

はい、所有者または管理者アクセス権を持つ任意のリポジトリでDependabotを無効にできます。Settings、次にCode security and analysisに移動して、リポジトリの可視性に関係なくDependabot機能のオン/オフを切り替えてください。

Dependabotを無効にすると、リポジトリのセキュリティインサイトとスコアカード評価に影響する可能性があります。GitHubはセキュリティ機能の採用を追跡するため、アラートとアップデートを無効にするとセキュリティメトリクスが低下する可能性がありますが、これは主にパブリックまたは組織のリポジトリで重要になります。

もちろんです。同じSettingsメニューまたはdependabot.yml設定ファイルを追加し直すことで、いつでもDependabot機能を再有効化できます。以前の設定は保持されないため、ゼロから再設定する必要があります。

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay