Skip to main content

Configuration de l’action de révision des dépendances

Vous pouvez utiliser le action de révision des dépendances pour détecter les vulnérabilités avant qu’elles ne soient ajoutées à votre projet.

Qui peut utiliser cette fonctionnalité ?

Propriétaires de référentiels, propriétaire d’organisations, gestionnaires de sécurité et utilisateurs avec le rôle d’administrateur

À propos de action de révision des dépendances

Le « action de révision des dépendances » fait référence à l’action spécifique qui peut signaler les différences dans une demande de tirage dans le contexte GitHub Actions, et ajouter des mécanismes d’application au workflow GitHub Actions.

action de révision des dépendances analyse vos demandes de tirage à la recherche de changements de dépendances et génère une erreur si les nouvelles dépendances présentent des vulnérabilités connues. L’action est prise en charge par un point de terminaison d’API qui compare les dépendances entre deux révisions et signale toutes les différences.

Pour plus d’informations sur l’action et le point de terminaison d’API, consultez la documentation dependency-review-action et « Points de terminaison d’API REST pour la révision des dépendances ».

Les propriétaires de l’organisation peuvent déployer la révision des dépendances à grande échelle en appliquant l’utilisation de action de révision des dépendances dans les dépôt de l’organisation. Cela implique l’utilisation d’ensembles de règles de dépôt pour lesquels vous allez définir action de révision des dépendances comme flux de travail requis, ce qui signifie que les demandes de tirage ne peuvent être fusionnées qu’une fois que le flux de travail passe toutes les vérifications requises. Pour plus d’informations, consultez « Application de la révision des dépendances à travers une organisation ».

Voici une liste des options de configuration courantes. Pour plus d’informations et une liste complète d’options, consultez Révision des dépendances sur le GitHub Marketplace.

OptionObligatoireUsage
fail-on-severityDéfinit le seuil de gravité (low, moderate, high, critical).
L’action échoue sur toutes les demandes de tirage qui introduisent des vulnérabilités du niveau de gravité spécifié ou supérieur.
allow-licensesContient une liste de licences autorisées. Vous trouverez les valeurs possibles pour ce paramètre dans la page Licences de la documentation de l’API.
L’action échoue sur les demandes de tirage qui introduisent des dépendances avec des licences qui ne correspondent pas à la liste.
deny-licensesContient une liste de licences interdites. Vous trouverez les valeurs possibles pour ce paramètre dans la page Licences de la documentation de l’API.
L’action échoue sur les demandes de tirage qui introduisent des dépendances avec des licences qui correspondent à la liste.
fail-on-scopesContient une liste de chaînes représentant les environnements de génération que vous souhaitez prendre en charge (development, runtime, unknown).
L'action échouera sur les demandes de tirage qui introduisent des vulnérabilités dans les champs d'application qui correspondent à la liste.
comment-summary-in-prActiver ou désactiver le rapport du résumé de la révision en tant que commentaire dans la demande de tirage. Si cette option est activée, vous devez accorder au flux de travail ou au travail l’autorisation pull-requests: write.
allow-ghsasContient la liste des ID de GitHub Advisory Database qui peuvent être ignorés pendant la détection. Vous trouverez les valeurs possibles pour ce paramètre dans GitHub Advisory Database.
config-fileIndique le chemin d'accès à un fichier de configuration. Le fichier de configuration peut être local au référentiel ou se trouver dans un référentiel externe.
external-repo-tokenSpécifie un jeton pour récupérer le fichier de configuration, si le fichier se trouve dans un référentiel externe privé. Le jeton doit disposer d’un accès en lecture au référentiel.

Tip

Les options allow-licenses et deny-licenses s’excluent mutuellement.

Configuration de l’action de révision des dépendances

Il existe deux méthodes pour configurer l’action de révision des dépendances :

  • Incorporer les options de configuration dans votre fichier de workflow.
  • Référencer un fichier de configuration dans votre fichier de workflow.

Notez que tous les exemples utilisent un numéro de version court pour l’action (v3) au lieu d’un numéro de version SemVer (par exemple, v3.0.8). Cela garantit que vous utilisez la version mineure la plus récente de l’action.

Utilisation de la configuration inline pour configurer l’action de révision des dépendances

  1. Ajoutez un nouveau workflow YAML à votre dossier .github/workflows.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        steps:
         - name: 'Checkout Repository'
           uses: actions/checkout@v4
         - name: Dependency Review
           uses: actions/dependency-review-action@v4
    
  2. Spécifiez vos paramètres.

    Cet exemple de fichier d’action de révision des dépendances montre comment vous pouvez utiliser les options de configuration disponibles.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
      contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        steps:
        - name: 'Checkout Repository'
          uses: actions/checkout@v4
        - name: Dependency Review
          uses: actions/dependency-review-action@v4
          with:
            # Possible values: "critical", "high", "moderate", "low"
            fail-on-severity: critical
    
            
            # You can only include one of these two options: `allow-licenses` and `deny-licenses`
            # ([String]). Only allow these licenses (optional)
            # Possible values: Any SPDX-compliant license identifiers or expressions from https://spdx.org/licenses/
            allow-licenses: GPL-3.0, BSD-3-Clause, MIT
            # ([String]). Block the pull request on these licenses (optional)
            # Possible values: Any SPDX-compliant license identifiers or expressions from https://spdx.org/licenses/
            deny-licenses: LGPL-2.0, BSD-2-Clause
            
            # ([String]). Skip these GitHub Advisory Database IDs during detection (optional)
            # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories
            allow-ghsas: GHSA-abcd-1234-5679, GHSA-efgh-1234-5679
            # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional)
            # Possible values: "development", "runtime", "unknown"
            fail-on-scopes: development, runtime
    

Utilisation d’un fichier config pour configurer l’action de révision des dépendances

  1. Ajoutez un nouveau workflow YAML à votre dossier .github/workflows et utilisez config-file pour préciser que vous utilisez un fichier de configuration.

    YAML
    name: 'Dependency Review'
    on: [pull_request]
    
    permissions:
     contents: read
    
    jobs:
      dependency-review:
        runs-on: ubuntu-latest
        steps:
        - name: 'Checkout Repository'
          uses: actions/checkout@v4
        - name: Dependency Review
          uses: actions/dependency-review-action@v4
          with:
           # ([String]). Representing a path to a configuration file local to the repository or in an external repository.
           # Possible values: An absolute path to a local file or an external file.
           config-file: './.github/dependency-review-config.yml'
           # Optional alternative syntax for an external file: OWNER/REPOSITORY/FILENAME@BRANCH (uncomment if preferred)
           # config-file: 'github/octorepo/dependency-review-config.yml@main'
    
           # ([Token]) Use if your configuration file resides in a private external repository.
           # Possible values: Any GitHub token with read access to the private external repository.
           external-repo-token: 'ghp_123456789abcde'
    
  2. Créez le fichier de configuration dans le chemin que vous avez spécifié.

    Ce fichier d'exemple YAML illustre la manière dont vous pouvez utiliser les options de configuration disponibles.

    YAML
      # Possible values: "critical", "high", "moderate", "low"
      fail-on-severity: critical
    
      # You can only include one of these two options: `allow-licenses` and `deny-licenses`
      # ([String]). Only allow these licenses (optional)
      # Possible values: Any SPDX-compliant license identifiers or expressions from https://spdx.org/licenses/
      allow-licenses:
        - GPL-3.0
        - BSD-3-Clause
        - MIT
       # ([String]). Block the pull request on these licenses (optional)
       # Possible values: Any SPDX-compliant license identifiers or expressions from https://spdx.org/licenses/
      deny-licenses:
        - LGPL-2.0
        - BSD-2-Clause
    
       # ([String]). Skip these GitHub Advisory Database IDs during detection (optional)
       # Possible values: Any valid GitHub Advisory Database ID from https://github.com/advisories
      allow-ghsas:
        - GHSA-abcd-1234-5679
        - GHSA-efgh-1234-5679
       # ([String]). Block pull requests that introduce vulnerabilities in the scopes that match this list (optional)
       # Possible values: "development", "runtime", "unknown"
      fail-on-scopes:
        - development
        - runtime
    

Pour plus d’informations sur les options de configuration, consultez dependency-review-action.

Pour aller plus loin