{"meta":{"title":"Configuration de la couverture du code pour votre référentiel","intro":"Utilisez la couverture de code intégrée de Code Quality pour repérer le code non testé dans les pull requests, sans payer ni maintenir un service tiers séparé.","product":"Sécurité et qualité du code","breadcrumbs":[{"href":"/fr/enterprise-cloud@latest/code-security","title":"Sécurité et qualité du code"},{"href":"/fr/enterprise-cloud@latest/code-security/how-tos","title":"Guides pratiques"},{"href":"/fr/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code","title":"Maintenir le code de qualité"},{"href":"/fr/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/set-up-code-coverage","title":"Configurer la couverture du code"}],"documentType":"article"},"body":"# Configuration de la couverture du code pour votre référentiel\n\nUtilisez la couverture de code intégrée de Code Quality pour repérer le code non testé dans les pull requests, sans payer ni maintenir un service tiers séparé.\n\nVous pouvez configurer la couverture du code pour votre dépôt de deux manières :\n\n* **Configuration automatique :** Utilisez l’agent alimenté par l’IA pour générer automatiquement un flux de travail. Choisissez cette option si :\n  * Vous souhaitez commencer rapidement sans écrire de configuration YAML.\n  * Votre projet utilise des frameworks de test courants et des modèles de génération.\n  * Vous êtes à l’aise pour itérer sur un workflow généré par l’IA.\n* **Configuration manuelle :** Configurez votre flux de travail CI vous-même. Choisissez cette option si :\n  * Vous avez besoin d’un contrôle précis sur le processus de couverture.\n  * Vous avez des exigences complexes en matière d’intégration continue (telles que des dépôts privés ou des étapes de construction personnalisées).\n  * Vous souhaitez comprendre exactement la façon dont la couverture est configurée.\n\n## Configuration automatique\n\nVous pouvez utiliser l’option de configuration automatique pour générer un flux de travail de couverture du code de travail sans créer manuellement la configuration CI. Un agent analyse votre dépôt, identifie votre framework de test et ouvre une pull request avec un workflow de couverture prêt à être examiné.\n\n> \\[!NOTE]\n> La configuration automatique utilise l’IA pour générer le fichier de flux de travail. Il n’existe aucun coût supplémentaire pour l’utilisation de cette fonctionnalité.\n\n### Conditions préalables pour l’installation automatique\n\n* Code Quality est activé pour votre référentiel. Consultez « [Activation de GitHub Code Quality](/fr/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/enable-code-quality) ».\n* Votre référentiel dispose d’une suite de tests existante.\n\n### Génération automatique d’un flux de travail de couverture\n\n1. Sur GitHub, accédez à la page principale du référentiel.\n2. Sous le nom de votre référentiel, cliquez sur **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg> Paramètres**. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"More\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>** , puis cliquez sur **Paramètres**.\n\n   ![Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.](/assets/images/help/repository/repo-actions-settings.png)\n3. Dans la barre latérale, sous « Sécurité », cliquez **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code-square\" aria-label=\"code review\" role=\"img\"><path d=\"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z\"></path></svg> Qualité du code** pour afficher la page «Qualité du code ».\n4. Dans la section « Analyse de la couverture du code », cliquez sur la zone de liste déroulante **Configuration** .\n5. Dans la liste, sélectionnez **Générer un flux de travail avec l’IA**. Attendez que l’agent analyse votre dépôt. L’agent ouvre une pull request en brouillon et publie une checklist des étapes qu’il est en train d’effectuer.\n6. Pour passer en revue la demande de tirage, cliquez sur **Vérifier la demande de tirage**.\n   Passez en revue la pull request une fois que l’agent a terminé son travail. La description de la pull request récapitule les modifications, y compris les mises à jour de la configuration du projet, les modifications apportées aux fichiers de workflow et les paramètres de sortie de la couverture de code.\n7. Si le workflow s’exécute avec succès en CI et que les rapports de couverture sont correctement téléversés, fusionnez la pull request.\n\n   Si le flux de travail a besoin d’ajustements, consultez [Configuration de la couverture automatique du code](/fr/enterprise-cloud@latest/code-security/concepts/code-quality/automatic-code-coverage-setup) pour obtenir des conseils sur les différents résultats et sur la façon d’itérer.\n\nPour plus d’informations sur le fonctionnement de l’agent et les attentes, consultez [Configuration de la couverture automatique du code](/fr/enterprise-cloud@latest/code-security/concepts/code-quality/automatic-code-coverage-setup).\n\n## Installation manuelle\n\nLa couverture du code intégrée vous permet de suivre la manière dont vos tests exercicent votre code, sans ajouter un service tiers à votre chaîne d’outils ou à votre budget. Dans les procédures suivantes, vous allez générer un rapport de couverture XML Cobertura à partir de votre suite de tests, le téléverser vers GitHub, puis consulter les résultats de couverture sur vos pull requests.\n\n### Conditions préalables pour la configuration manuelle\n\n* Code Quality est activé pour votre référentiel.\n* Votre référentiel a une suite de tests qui s’exécute dans GitHub Actions.\n* Votre infrastructure de test peut produire un rapport de couverture au format **XML Cobertura** .\n\n### Étape 1 : Générer un rapport de couverture XML Cobertura\n\nConfigurez votre infrastructure de test pour générer un rapport de couverture au format XML Cobertura. La couverture du code fonctionne avec n’importe quel langage de programmation qui peut produire ce format.\n\n1. Identifiez l’outil de couverture de votre langue dans le tableau ci-dessous.\n2. Ajoutez la commande ou la configuration appropriée à votre flux de travail CI afin qu’un fichier XML Cobertura soit généré chaque fois que vos tests s’exécutent.\n\n| Langage               | Framework / Outil               | Comment générer le XML Cobertura                                                   |\n| --------------------- | ------------------------------- | ---------------------------------------------------------------------------------- |\n| Python                | `pytest` + `pytest-cov`         | `pytest --cov=. --cov-report=xml`                                                  |\n| Java                  | JaCoCo                          | Utiliser le `cover2cover.py` script ou le plug-in JaCoCo-to-Cobertura Gradle/Maven |\n| JavaScript/TypeScript | Istanbul/ `nyc`                 | `nyc report --reporter=cobertura`                                                  |\n| Ruby                  | SimpleCov                       | Ajouter `SimpleCov::Formatter::CoberturaFormatter`                                 |\n| Go                    | `go test` + `gocover-cobertura` | `go test -coverprofile=cover.out && gocover-cobertura < cover.out > coverage.xml`  |\n\n> \\[!TIP]\n> Si votre framework n’est pas répertorié ci-dessus, consultez sa documentation pour vérifier la prise en charge du format de sortie Cobertura. De nombreux outils le prennent en charge directement ou peuvent être convertis en Xml Cobertura à partir d’autres formats.\n\n### Étape 2 : Charger le rapport de couverture\n\nUne fois que vos tests ont généré un rapport XML Cobertura, téléversez-le sur GitHub afin que les résultats de couverture s’affichent sur les demandes de fusion.\n\n1. Ouvrez le fichier de flux de travail CI de votre référentiel (par exemple). `.github/workflows/ci.yml`\n\n2. Ajoutez l’étape suivante après l’étape qui exécute vos tests et génère le rapport de couverture :\n\n   ```yaml copy\n   - name: Upload coverage report\n     if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository\n     uses: actions/upload-code-coverage@v1\n     with:\n       file: COVERAGE-FILE-PATH.xml\n       language: LANGUAGE\n       label: LABEL\n   ```\n\n3. Remplacez les valeurs suivantes :\n   * **`COVERAGE-FILE-PATH.xml`**: chemin d’accès à votre rapport XML Cobertura (par exemple, `coverage.xml` ou `target/site/jacoco/cobertura.xml`).\n   * **`LANGUAGE`** : langage principal du code couvert (par exemple, `Python`, `Java`, `JavaScript`).\n   * **`LABEL`**: étiquette permettant d’identifier ce rapport de couverture (par exemple, `code-coverage/pytest`).\n\n4. Effectuez un commit et poussez la modification du flux de travail.\n\n### Exemple de flux de travail complet\n\nCet exemple exécute Python tests avec `pytest-cov` et charge le rapport de couverture :\n\n```yaml annotate copy\n# This workflow runs your test suite, generates a Cobertura XML coverage report, and uploads it to GitHub. Once this workflow is committed, coverage results appear automatically on every pull request.\nname: Code Coverage\n\n# Run on pushes to the default branch (to establish the baseline) and on pull requests (to compare against it). Code Quality compares PR branch coverage to the default branch, so both triggers are needed.\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\n# The `code-quality: write` permission is required to upload coverage data. No other elevated permissions are needed.\npermissions:\n  contents: read\n  code-quality: write\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      # Check out the PR head commit (not the merge commit) so coverage line numbers map correctly to the diff.\n      - uses: actions/checkout@v6\n        with:\n          ref: ${{ github.event.pull_request.head.sha || github.sha }}\n\n      # Replace this step with whatever language setup your project uses (Node.js, Java, Go, etc.). The upload action works with any language that produces a Cobertura XML report.\n      - uses: actions/setup-python@v5\n        with:\n          python-version: \"3.x\"\n\n      - name: Install dependencies\n        run: |\n          python -m pip install --upgrade pip\n          pip install -r requirements.txt\n          pip install pytest pytest-cov\n\n      # Adapt this step for your test framework. The key requirement is producing a Cobertura XML file. For other languages, see the framework table earlier in this article.\n      - name: Run tests with coverage\n        run: pytest --cov=. --cov-report=xml\n\n      # This step replaces any third-party coverage upload (Codecov, Coveralls, etc.). After this runs, the `github-code-quality[bot]` bot posts a coverage summary directly on the pull request.\n      - name: Upload coverage report\n        if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository\n        uses: actions/upload-code-coverage@v1\n        with:\n          file: coverage.xml\n          language: Python\n          label: code-coverage/pytest\n```\n\n### Étape 3 : Afficher les résultats de couverture sur les pull requests\n\n1. Ouvrez une pull request (ou ajoutez des commits à une pull request existante) qui déclenche le workflow que vous avez configuré.\n2. Une fois le workflow terminé, recherchez un commentaire de `github-code-quality[bot]` sur la pull request. Le commentaire comprend :\n   * Pourcentage agrégé de couverture de lignes pour la branche de pull request par rapport à la branche par défaut.\n   * Répartition par fichier montrant quels fichiers ont gagné ou perdu la couverture."}