Skip to main content

Configuration de la révision des dépendances

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

À propos de la vérification des dépendances

Une révision des dépendances vous aide à comprendre les changements de dépendances et l’impact de ceux-ci sur la sécurité à chaque demande de tirage. Cette fonctionnalité fournit une visualisation facilement compréhensible des changements de dépendances avec des différences enrichies sous l’onglet « Fichiers modifiés » d’une demande de tirage (pull request). Une révision des dépendances vous informe de ce qui suit :

  • Dépendances ajoutées, supprimées ou mises à jour, ainsi que leurs dates de publication.
  • Nombre de projets utilisant ces composants.
  • Données de vulnérabilité pour ces dépendances.

Pour plus d’informations, consultez « À propos de la révision des dépendances » ou « Examen des modifications de dépendances dans une demande de tirage ».

À propos de la configuration de la révision des dépendances

La révision des dépendances est disponible dans tous les dépôts publics au sein de tous les produits et ne peut pas être désactivée. La révision des dépendances est disponible dans les dépôts privés appartenant aux organisations qui utilisent GitHub Enterprise Cloud et qui disposent d’une licence pour GitHub Advanced Security. Pour plus d’informations, consultez la documentation GitHub Enterprise Cloud.

À propos de la configuration de l’dependency review action

dependency review action 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 de dependency-review-action et la section « Révision des dépendances » dans la documentation de l’API.

Les options de configuration suivantes sont disponibles.

OptionObligatoireUsage
fail-on-severityFacultatifDé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.

Conseil : les options allow-licenses et deny-licenses sont mutuellement exclusives.

Configuration de l’dependency review action

Il existe deux méthodes pour configurer l’dependency review action :

  • 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’dependency review action

  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@v3
           - name: Dependency Review
             uses: actions/dependency-review-action@v3
  2. Spécifiez vos paramètres.

    Cet exemple de fichier d’dependency review action 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@v3
          - name: Dependency Review
            uses: actions/dependency-review-action@v3
            with:
            # Possible values: "critical", "high", "moderate", "low" 
            fail-on-severity: critical
    
            # You can only include one of these two options: `allow-licenses` and `deny-licences`
            # ([String]). Only allow these licenses (optional)
            # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses 
            allow-licenses: GPL-3.0, BSD-3-Clause, MIT
            # ([String]). Block the pull request on these licenses (optional)
            # Possible values: Any  `spdx_id` value(s) from https://docs.github.com/en/rest/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’dependency review action

  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@v3
          - name: Dependency Review
            uses: actions/dependency-review-action@v3
            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'   
             # Syntax for an external file: OWNER/REPOSITORY/FILENAME@BRANCH
             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-licences`
      # ([String]). Only allow these licenses (optional)
      # Possible values: Any `spdx_id` value(s) from https://docs.github.com/en/rest/licenses 
      allow-licenses: 
        - GPL-3.0
        - BSD-3-Clause
        - MIT
       # ([String]). Block the pull request on these licenses (optional)
       # Possible values: Any  `spdx_id` value(s) from https://docs.github.com/en/rest/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.