Les règles de blocage sont des garde-fous qui définissent quels résultats doivent faire échouer une vérification de pull request ou un pipeline CI. Cela permet de garantir que votre base de code respecte les normes de sécurité et de qualité de votre organisation.Vous pouvez créer trois types de règles de blocage :
Règles de vulnérabilité du code : bloquent les pull requests selon les vulnérabilités, les problèmes de qualité du code ou les deux
Règles de vulnérabilité des dépendances : bloquent les pull requests selon les dépendances vulnérables détectées par le scan SCA
Règles de License Compliance : bloquent les dépendances avec des licences SPDX spécifiques ou des familles de licences
Les règles de blocage sont principalement conçues pour :
Équipes de développement
Chefs de projet
Professionnels de la sécurité
Cette fonctionnalité est particulièrement utile pour les organisations ayant des exigences strictes en matière de conformité ou celles travaillant sur des applications critiques où la qualité du code et la sécurité sont primordiales.
Définir des règles basées sur les Common Weakness Enumerations (CWE) pour bloquer les pull requests introduisant des types spécifiques de vulnérabilités ou des problèmes de qualité de code.
Personnaliser les niveaux d’urgence
Attribuez des niveaux d’urgence (par exemple, critique, élevé, moyen, bas) à différents types de problèmes, ce qui vous permet de les prioriser et de les gérer en conséquence.
Filtrer les dépendances par score CVSS
Pour les règles de vulnérabilité des dépendances, définissez une plage inclusive de scores CVSS afin de bloquer les dépendances vulnérables selon leur score.
Filtrer les dépendances par accessibilité
Pour les règles Dependency Vulnerability qui s’appliquent à la CI, restreignez le blocage aux dépendances dont le code vulnérable est réellement accessible depuis votre application, afin que les paquets inutilisés ou inaccessibles ne fassent pas échouer votre pipeline.
Appliquer la politique de licences
Bloquez les dépendances selon des identifiants de licence SPDX spécifiques ou selon les familles Copyleft, Permissive et Commercial.
Périmètre par projet et tag
Appliquez des règles de blocage à des projets spécifiques, à des tags de projet, ou à l’ensemble de votre organisation, ce qui vous donne un contrôle granulaire sur quels projets sont soumis à quelles règles.
Gestion des règles
Créez, modifiez et supprimez facilement des règles de blocage grâce à une interface conviviale, afin de garantir que vos règles restent à jour avec vos besoins évolutifs.
Activation/désactivation des règles
Activez ou désactivez temporairement les règles de blocage selon vos besoins, sans perdre leur configuration.
Prérequis Vous devez avoir installé et configuré la Corgea GitHub App avec les autorisations de dépôt requises.
1
Soumission de pull request
Le développeur soumet une pull request avec des modifications de code
2
Analyse automatisée
Le système analyse les modifications du code au regard des règles de blocage actives
3
Validation des règles
Si des violations sont détectées, la pull request est automatiquement bloquée
4
Notification au développeur
Le développeur reçoit une notification détaillée concernant les violations des règles
5
Résolution
Avant que la fusion ne soit autorisée, le développeur doit corriger les violations et les marquer comme Fixed, ou les classer comme False Positive ou Accepted Risk
Prérequis Assurez-vous que l’intégration Azure DevOps avec Corgea est configurée et que vous disposez des autorisations nécessaires.
1
Soumission de pull request
Un développeur soumet une pull request avec des modifications de code dans Azure DevOps.
2
Analyse automatisée
Le système évalue les modifications du code selon les règles de blocage actives définies dans Corgea.
3
Validation des règles
Si des violations sont détectées, la pull request est automatiquement bloquée.
Le développeur ne peut pas fusionner la pull request tant que les violations ne sont pas résolues.
4
Notification au développeur
Le développeur reçoit un lien vers les informations détaillées sur les problèmes ayant entraîné l’échec, dans la page de scan Corgea.
5
Résolution
Le développeur doit résoudre les violations en les corrigeant ou en les marquant comme False Positive ou Accepted Risk avant que la fusion puisse se poursuivre.
Code Vulnerability : bloque les pull requests selon les problèmes de sécurité du code (résultats SAST)
Dependency Vulnerability : bloque les pull requests selon les dépendances vulnérables (résultats SCA)
License Compliance : bloque les dépendances selon les licences SPDX refusées ou les familles de licences
3
Informations de base
Saisissez le nom et la description de la règle, puis choisissez Applies To :
Pull Requests applique automatiquement la règle dans les vérifications de pull request.
CI applique la règle uniquement lorsqu’un pipeline la nomme avec corgea scan --block-on <slug>. Les règles CI ne bloquent pas les pull requests.
Les nouvelles règles utilisent Pull Requests par défaut. Corgea génère le slug à partir du nom de la règle et l’affiche dans la liste des règles.Les règles de pull request ne commentent que les résultats qui nécessitent une action. Corgea ignore les commentaires pour les résultats confirmés comme inaccessibles, ceux mis en attente parce qu’ils sont considérés comme des faux positifs ou proviennent de langages non pris en charge, ainsi que ceux situés dans des chemins ignorés par le projet. Ces résultats restent disponibles dans Corgea pour examen, mais ne bloquent pas la pull request.
4
Configurer les paramètres
Pour les règles Code Vulnerability : choisissez un Issue Type afin d’appliquer la règle à All les résultats, uniquement aux Vulnerabilities ou uniquement aux résultats de Code Quality. All est la valeur par défaut et préserve le comportement des règles existantes. Sélectionnez ensuite les niveaux d’urgence (Critical, High, Medium ou Low) et/ou les CWE ciblées ; au moins un de ces critères est requis.Pour les règles Dependency Vulnerability : choisissez un filtrage par sévérité ou par score CVSS. Sélectionnez les niveaux d’urgence (Critical, High, Medium ou Low), ou saisissez un score CVSS minimal et maximal compris entre 0,0 et 10,0 afin de bloquer les dépendances vulnérables dans cette plage inclusive. Si la règle s’applique à la CI, vous pouvez également sélectionner un ou plusieurs états d’Accessibilité pour la restreindre davantage — voir Filtrage par accessibilité.Pour les règles License Compliance : sélectionnez au moins une famille de licences refusée (Copyleft, Permissive ou Commercial) ou saisissez un ou plusieurs identifiants SPDX. Une dépendance est bloquée lorsqu’une licence signalée correspond à une famille sélectionnée ou à un ID spécifique.
5
Définir le périmètre
Choisissez les projets concernés et/ou les tags de projet (optionnel). Une règle s’applique lorsqu’un projet est sélectionné directement ou possède un tag sélectionné. Si aucun projet ou tag n’est sélectionné, la règle s’applique à tous les projets.
Recherchez les règles par nom ou par paramètre, ou filtrez la liste par tag de projet ou par cible Applies To. Le tableau des règles affiche le slug de chaque règle dans la colonne ID et présente le périmètre projet, le type de règle et la cible Pull Requests ou CI sous Triggers On. Sélectionnez un slug pour le copier et l’utiliser dans une commande CI. Les règles sans périmètre de projet ou de tag s’appliquent à tous les projets ; les longues listes sont regroupées derrière une infobulle +N more.
Créez une règle active avec Applies To défini sur CI, puis passez son slug à la commande de scan. Nommez les règles d’après la condition qui les déclenche — par exemple criticals, et non no-criticals — afin que --block-on se lise comme une affirmation directe. --block-on nécessite Corgea CLI 1.10.0 ou une version ultérieure.
corgea scan --block-on criticals
Pour appliquer plusieurs règles CI, fournissez leurs slugs sous forme de liste séparée par des virgules. La commande échoue lorsqu’un résultat viole l’une des règles nommées. Un slug inconnu, une règle inactive ou une règle applicable aux pull requests est traité comme une erreur de configuration et n’est pas ignoré. --block-on n’est pris en charge que par le scanner BLAST et ne peut pas être combiné avec --fail ou --fail-on.
Vous pouvez consulter les règles de blocage qui s’appliquent à vos scans à deux endroits :
Sur la page des détails du scan, vous verrez une section « Blocking Rules » affichant toutes les règles évaluées :
Dans les détails d’un problème, vous pouvez voir les règles de blocage qu’il a déclenchées :
Cela facilite la compréhension des règles qui affectent vos scans et des problèmes spécifiques, vous aidant à identifier pourquoi certains changements peuvent être bloqués.
Dans la plupart des projets, la majorité des dépendances vulnérables ne sont jamais réellement utilisées par votre code. Le filtrage par accessibilité permet à une règle Dependency Vulnerability de ne bloquer que les résultats qui importent : une CVE critique dans un paquet que vous n’appelez jamais ne fait plus échouer votre pipeline.
Disponible uniquement pour les règles CI L’accessibilité est analysée sur les scans que vous lancez vous-même avec corgea scan, et non sur ceux déclenchés automatiquement à l’ouverture d’une pull request. Définissez Applies To sur CI pour utiliser ce filtre ; l’option est masquée pour les règles Pull Request. Référencez ensuite la règle depuis votre pipeline avec corgea scan --block-on <slug>.
Prérequis L’accessibilité nécessite l’activation de AI-Native SCA pour votre organisation. Sans cette option, aucune dépendance n’est analysée et une règle utilisant ce filtre ne bloque jamais rien. L’éditeur de règles vous avertit lorsque l’option est désactivée.
Sélectionnez un ou plusieurs des états suivants :
État
Signification
Reachable
La fonction vulnérable est accessible depuis le code de votre application.
Not Reachable
La dépendance est utilisée, mais la fonction vulnérable n’est pas accessible.
Unused Dependency
La dépendance est déclarée mais n’est utilisée nulle part dans la base de code.
Unknown
La dépendance a été analysée, mais l’accessibilité n’a pas pu être déterminée.
Le filtre d’accessibilité est combiné avec le filtre de sévérité, de CVSS ou Malicious, et ne le remplace pas : un résultat doit correspondre aux deux. Une règle définie sur la sévérité Critical et sur Reachable ne bloque que les vulnérabilités critiques qui sont également accessibles. Laisser l’accessibilité vide conserve le comportement existant de la règle, qui bloque indépendamment de l’accessibilité.
L’analyse d’accessibilité s’exécute après la fin du scan lui-même : corgea scan continue donc d’interroger Corgea jusqu’à ce qu’elle se termine, au lieu de renvoyer un résultat immédiatement. L’analyse s’achève une fois toutes les dépendances directes analysées, ce qui prend généralement quelques minutes et au maximum 30.Ce filtre échoue de façon permissive. Si l’analyse ne peut pas aboutir — la fenêtre de 30 minutes expire, l’analyse échoue, ou AI-Native SCA est désactivé — la règle ne signale aucune violation au lieu de faire échouer votre build. Un pipeline n’est bloqué que sur une accessibilité réellement déterminée par Corgea, jamais sur une analyse manquante.
corgea scan échoue de façon restrictive à l’expiration de son propre délai. Corgea CLI 1.13.0 et versions ultérieures autorisent 35 minutes, ce qui dépasse confortablement la fenêtre d’analyse de 30 minutes. Sur une CLI antérieure, le délai est de 15 minutes et peut expirer alors que Corgea analyse encore, faisant échouer le pipeline. Mettez à jour la CLI ou augmentez le délai avec CORGEA_BLOCKING_RULES_TIMEOUT_SECONDS :
Type de règle : Code VulnerabilityCréez une règle ciblant CWE-326 (Inadequate Encryption Strength) et CWE-327 (Use of a Broken or Risky Cryptographic Algorithm), avec une urgence « Critical », afin d’empêcher l’utilisation d’un chiffrement faible.
Faire respecter la qualité du code
Type de règle : Code VulnerabilitySélectionnez Code Quality en tant que type de problème, puis établissez une règle pour CWE-398 (Indicator of Poor Code Quality) et CWE-477 (Use of Obsolete Functions) avec une urgence « Medium » pour maintenir les normes de code.
Blocage des vulnérabilités critiques de dépendance
Type de règle : Dependency VulnerabilityCréez une règle avec les niveaux d’urgence « Critical » et « High » pour bloquer automatiquement toute pull request qui introduit des dépendances présentant des vulnérabilités critiques ou de sévérité élevée. Vous protégez ainsi votre chaîne d’approvisionnement contre les paquets vulnérables connus.
Blocage des dépendances par plage CVSS
Type de règle : Dependency VulnerabilityCréez une règle qui filtre par CVSS comme 7.0 à 10.0, pour bloquer les pull requests introduisant des dépendances vulnérables dans cette plage de score.
Bloquer uniquement les vulnérabilités critiques accessibles
Type de règle : Dependency Vulnerability — S’applique à : CISélectionnez les niveaux d’urgence « Critical » et « High », puis sélectionnez Reachable sous Accessibilité. La règle ne fait échouer un pipeline que lorsqu’une vulnérabilité critique ou élevée est accessible depuis le code de votre application, afin que les paquets inutilisés ou inaccessibles n’interrompent pas les développeurs. C’est une bonne première règle d’accessibilité, car elle restreint une règle de sévérité existante au lieu d’élargir ce qui bloque.
Bloquer les dépendances inutilisées
Type de règle : Dependency Vulnerability — S’applique à : CISélectionnez Unused Dependency sous Accessibilité, seule, sans filtre de sévérité ni de CVSS. La règle fait échouer un pipeline qui introduit des paquets vulnérables que rien n’utilise dans la base de code, incitant les développeurs à supprimer la dépendance plutôt qu’à la mettre à jour.
Blocage des dépendances Copyleft
Type de règle : License ComplianceSélectionnez la famille Copyleft pour bloquer les dépendances dont les licences signalées appartiennent à cette famille. Ajoutez des identifiants SPDX spécifiques lorsque votre politique nécessite une liste de refus plus étroite.
Commencez par les règles essentielles et développez progressivement
Pour les règles Dependency Vulnerability, commencez par la sévérité Critical uniquement ou par une plage CVSS ciblée, puis élargissez les critères à mesure que votre équipe s’adapte
Sur les règles CI, ajoutez un filtre d’accessibilité Reachable à une règle de sévérité existante pour réduire le bruit sans affaiblir la couverture des vulnérabilités réellement exploitables
Pour les règles Code Vulnerability, concentrez-vous d’abord sur les CWE les plus impactants (par exemple, failles d’injection, problèmes d’authentification)
Revues régulières et mises à jour
Documentation claire et formation d’équipe
Encourager les retours et la collaboration
Utilisation stratégique des niveaux d’urgence
Considérez les tags de projet lorsque la même règle doit couvrir un groupe de projets liés
Si une pull request est bloquée de façon inattendue, vérifiez d’abord les règles actives et leurs configurations.
Problèmes courants
Comportement de blocage inattendu
Problèmes de ciblage par règles
Problèmes liés à la portée du projet
Étapes de résolution
Vérifier les configurations des règles
Vérifier le ciblage des CWE
Confirmer les paramètres du projet
Contactez le support si besoin
Cette page vous a-t-elle été utile ?
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Corgea Documentation","colors":{"primary":"#F56C26","light":"#F56C26","dark":"#F56C26"},"logo":{"light":"https://mintcdn.com/corgea/mpJUc1GyXtnVYEyT/logo/logo.png?fit=max\u0026auto=format\u0026n=mpJUc1GyXtnVYEyT\u0026q=85\u0026s=f66a9484335ac4db5d5d92e12fd87af6","dark":"https://mintcdn.com/corgea/mpJUc1GyXtnVYEyT/logo/logo.png?fit=max\u0026auto=format\u0026n=mpJUc1GyXtnVYEyT\u0026q=85\u0026s=f66a9484335ac4db5d5d92e12fd87af6"},"favicon":"https://mintcdn.com/corgea/mpJUc1GyXtnVYEyT/logo/logo.png?fit=max\u0026auto=format\u0026n=mpJUc1GyXtnVYEyT\u0026q=85\u0026s=f66a9484335ac4db5d5d92e12fd87af6","background":{"color":{"light":"#fffdfd","dark":"#131313"}},"navbar":{"links":[{"href":"mailto:help@corgea.com","label":"Support"}],"primary":{"type":"button","label":"Go to Corgea","href":"https://www.corgea.app"}},"footer":{"socials":{"twitter":"https://x.com/CorgeaInc","github":"https://github.com/Corgea","linkedin":"https://www.linkedin.com/company/corgea"}},"integrations":{"ga4":{"measurementId":"G-GGF9NXG1LJ"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"navbar":{"links":[{"href":"mailto:help@corgea.com","label":"Support"}],"primary":{"type":"button","label":"Go to Corgea","href":"https://www.corgea.app"}},"href":"introduction"},{"language":"de","navbar":{"links":[{"href":"mailto:help@corgea.com","label":"Support"}],"primary":{"type":"button","label":"Zu Corgea","href":"https://www.corgea.app"}},"href":"de/introduction"},{"language":"fr","navbar":{"links":[{"href":"mailto:help@corgea.com","label":"Assistance"}],"primary":{"type":"button","label":"Accéder à Corgea","href":"https://www.corgea.app"}},"href":"fr/introduction"},{"language":"es","navbar":{"links":[{"href":"mailto:help@corgea.com","label":"Soporte"}],"primary":{"type":"button","label":"Ir a Corgea","href":"https://www.corgea.app"}},"href":"es/introduction"},{"language":"ja","navbar":{"links":[{"href":"mailto:help@corgea.com","label":"サポート"}],"primary":{"type":"button","label":"Corgeaを開く","href":"https://www.corgea.app"}},"href":"ja/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"corgea","hasAudioNarration":false,"actualSubdomain":"corgea","customDomains":["docs.corgea.app"],"gitSource":{"type":"github","owner":"corgea","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad8ec06f9199d9b39f39adc","collectionId":"781347d1-16c1-40fd-9849-07bbf0b0f333","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad8ec06f9199d9b39f39adc"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ad8ec06f9199d9b39f39adc","clientVersion":"0.0.3926","searchFilterCounts":[{"language":"en","tag":"API Reference","count":77},{"language":"de","tag":"API-Referenz","count":77},{"language":"es","tag":"Referencia de la API","count":77},{"language":"fr","tag":"Référence API","count":77},{"language":"ja","tag":"APIリファレンス","count":75},{"language":"en","tag":"Documentation","count":57},{"language":"de","tag":"Dokumentation","count":55},{"language":"es","tag":"Documentación","count":55},{"language":"fr","tag":"Documentation","count":55},{"language":"ja","tag":"ドキュメント","count":55},{"language":"en","tag":"Core Features","count":30},{"language":"de","tag":"Kernfunktionen","count":30},{"language":"es","tag":"Funciones principales","count":30},{"language":"fr","tag":"Fonctionnalités principales","count":30},{"language":"ja","tag":"主な機能","count":30},{"language":"en","tag":"Integrations","count":15},{"language":"en","tag":"Issues","count":15},{"language":"de","tag":"Integrationen","count":15},{"language":"de","tag":"Issues","count":15},{"language":"es","tag":"Integraciones","count":15},{"language":"es","tag":"Hallazgos","count":15},{"language":"fr","tag":"Intégrations","count":15},{"language":"fr","tag":"Problèmes","count":15},{"language":"ja","tag":"インテグレーション","count":15},{"language":"ja","tag":"問題","count":15},{"language":"en","tag":"Security Scanning","count":10},{"language":"de","tag":"Sicherheitsscans","count":10},{"language":"es","tag":"Análisis de seguridad","count":10},{"language":"fr","tag":"Analyse de sécurité","count":10},{"language":"ja","tag":"セキュリティスキャン","count":10},{"language":"en","tag":"Authentication","count":8},{"language":"en","tag":"Teams","count":8},{"language":"de","tag":"Authentifizierung","count":8},{"language":"de","tag":"Teams","count":8},{"language":"es","tag":"Autenticación","count":8},{"language":"es","tag":"Equipos","count":8},{"language":"fr","tag":"Authentification","count":8},{"language":"fr","tag":"Équipes","count":8},{"language":"ja","tag":"認証","count":8},{"language":"ja","tag":"チーム","count":8},{"language":"en","tag":"Issue Management","count":7},{"language":"en","tag":"Notifications","count":7},{"language":"de","tag":"Issue-Management","count":7},{"language":"de","tag":"Benachrichtigungen","count":7},{"language":"es","tag":"Gestión de hallazgos","count":7},{"language":"es","tag":"Notificaciones","count":7},{"language":"fr","tag":"Gestion des résultats","count":7},{"language":"fr","tag":"Notifications","count":7},{"language":"ja","tag":"検出結果の管理","count":7},{"language":"ja","tag":"通知","count":7}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"fr/blocking_rules","slug":"/fr/blocking_rules","pageMetadata":{"title":"Règles de blocage","description":"Les règles de blocage appliquent les normes de sécurité et de qualité dans les pull requests ou les pipelines CI.","href":"/fr/blocking_rules"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Les règles de blocage appliquent les normes de sécurité et de qualité dans les pull requests ou les pipelines CI.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,Frame,Heading,Info,OptimizedImage,Step,Steps,Tab,Table,Tabs,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`aperçu`,children:`Aperçu`}),`\n`,_jsx(Heading,{level:`3`,id:`fonctionnement`,children:`Fonctionnement`}),`\n`,_jsx(_components.p,{children:`Les règles de blocage sont des garde-fous qui définissent quels résultats doivent faire échouer une vérification de pull request ou un pipeline CI. Cela permet de garantir que votre base de code respecte les normes de sécurité et de qualité de votre organisation.`}),`\n`,_jsx(_components.p,{children:`Vous pouvez créer trois types de règles de blocage :`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Règles de vulnérabilité du code`}),` : bloquent les pull requests selon les vulnérabilités, les problèmes de qualité du code ou les deux`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Règles de vulnérabilité des dépendances`}),` : bloquent les pull requests selon les dépendances vulnérables détectées par le scan SCA`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Règles de License Compliance`}),` : bloquent les dépendances avec des licences SPDX spécifiques ou des familles de licences`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`pour-qui-c’est`,children:`Pour qui c’est`}),`\n`,_jsx(_components.p,{children:`Les règles de blocage sont principalement conçues pour :`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Équipes de développement`}),`\n`,_jsx(_components.li,{children:`Chefs de projet`}),`\n`,_jsx(_components.li,{children:`Professionnels de la sécurité`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Cette fonctionnalité est particulièrement utile pour les organisations ayant des exigences strictes en matière de conformité ou celles travaillant sur des applications critiques où la qualité du code et la sécurité sont primordiales.`}),`\n`,_jsx(Heading,{level:`2`,id:`caractéristiques-clés-et-avantages`,children:`Caractéristiques clés et avantages`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Appliquer les normes de codage`,icon:`shield-check`,id:`appliquer-les-normes-de-codage`,children:_jsx(_components.p,{children:`Définir des règles basées sur les Common Weakness Enumerations (CWE) pour bloquer les pull requests introduisant des types spécifiques de vulnérabilités ou des problèmes de qualité de code.`})}),_jsx(Accordion,{title:`Personnaliser les niveaux d’urgence`,icon:`signal`,id:`personnaliser-les-niveaux-d-urgence`,children:_jsx(_components.p,{children:`Attribuez des niveaux d’urgence (par exemple, critique, élevé, moyen, bas) à différents types de problèmes, ce qui vous permet de les prioriser et de les gérer en conséquence.`})}),_jsx(Accordion,{title:`Filtrer les dépendances par score CVSS`,icon:`gauge`,id:`filtrer-les-dependances-par-score-cvss`,children:_jsx(_components.p,{children:`Pour les règles de vulnérabilité des dépendances, définissez une plage inclusive de scores CVSS afin de bloquer les dépendances vulnérables selon leur score.`})}),_jsx(Accordion,{title:`Filtrer les dépendances par accessibilité`,icon:`diagram-project`,id:`filtrer-les-dependances-par-accessibilite`,children:_jsx(_components.p,{children:`Pour les règles Dependency Vulnerability qui s’appliquent à la CI, restreignez le blocage aux dépendances dont le code vulnérable est réellement accessible depuis votre application, afin que les paquets inutilisés ou inaccessibles ne fassent pas échouer votre pipeline.`})}),_jsx(Accordion,{title:`Appliquer la politique de licences`,icon:`file-contract`,id:`appliquer-la-politique-de-licences`,children:_jsx(_components.p,{children:`Bloquez les dépendances selon des identifiants de licence SPDX spécifiques ou selon les familles Copyleft, Permissive et Commercial.`})}),_jsx(Accordion,{title:`Périmètre par projet et tag`,icon:`folder-tree`,id:`perimetre-par-projet-et-tag`,children:_jsx(_components.p,{children:`Appliquez des règles de blocage à des projets spécifiques, à des tags de projet, ou à l’ensemble de votre organisation, ce qui vous donne un contrôle granulaire sur quels projets sont soumis à quelles règles.`})}),_jsx(Accordion,{title:`Gestion des règles`,icon:`gear`,id:`gestion-des-regles`,children:_jsx(_components.p,{children:`Créez, modifiez et supprimez facilement des règles de blocage grâce à une interface conviviale, afin de garantir que vos règles restent à jour avec vos besoins évolutifs.`})}),_jsx(Accordion,{title:`Activation/désactivation des règles`,icon:`toggle-on`,id:`activation-desactivation-des-regles`,children:_jsx(_components.p,{children:`Activez ou désactivez temporairement les règles de blocage selon vos besoins, sans perdre leur configuration.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`rule-types`,children:`Types de règles`}),`\n`,_jsx(_components.p,{children:`Les règles de blocage prennent en charge trois types distincts pour offrir une couverture de sécurité complète :`}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsxs(Card,{title:`Code Vulnerability`,icon:`code`,children:[_jsxs(_components.p,{children:[`Bloque les pull requests selon les `,_jsx(_components.strong,{children:`vulnérabilités de sécurité`}),`, les `,_jsx(_components.strong,{children:`problèmes de qualité du code`}),` ou les deux.`]}),_jsx(_components.p,{children:`Configurer par :`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Sélection d’un type de problème : All, Vulnerabilities ou Code Quality`}),`\n`,_jsx(_components.li,{children:`Sélection de catégories CWE (Common Weakness Enumeration) précises`}),`\n`,_jsx(_components.li,{children:`Définir les niveaux d’urgence/sévérité`}),`\n`]}),_jsx(_components.p,{children:`Utilisez ce type de règle pour empêcher les injections SQL, les XSS, la cryptographie non sécurisée et d’autres vulnérabilités du code.`})]}),_jsxs(Card,{title:`Dependency Vulnerability`,icon:`box`,children:[_jsxs(_components.p,{children:[`Bloque les pull requests selon les `,_jsx(_components.strong,{children:`dépendances vulnérables`}),` détectées par l’analyse de la composition logicielle (SCA).`]}),_jsx(_components.p,{children:`Configurer par :`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Définir les niveaux d’urgence/gravité (Critical, High, Medium, Low)`}),`\n`,_jsx(_components.li,{children:`Ou définition d’une plage inclusive de scores CVSS comprise entre 0,0 et 10,0`}),`\n`,_jsxs(_components.li,{children:[`Éventuellement en restreignant par `,_jsx(_components.a,{href:`#reachability`,children:`accessibilité`}),` (règles CI uniquement)`]}),`\n`]}),_jsx(_components.p,{children:`Utilisez ce type de règle pour empêcher l’introduction de paquets présentant des vulnérabilités connues et protéger votre chaîne d’approvisionnement.`})]}),_jsxs(Card,{title:`License Compliance`,icon:`file-contract`,children:[_jsx(_components.p,{children:`Bloque les pull requests ou les pipelines CI lorsqu’une dépendance utilise une licence refusée.`}),_jsx(_components.p,{children:`Configurer par :`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Sélection d’une ou plusieurs familles de licences : Copyleft, Permissive ou Commercial`}),`\n`,_jsxs(_components.li,{children:[`Saisie d’identifiants SPDX spécifiques, par exemple `,_jsx(_components.code,{children:`AGPL-3.0`})]}),`\n`]}),_jsx(_components.p,{children:`Utilisez ce type de règle pour appliquer la politique de licences open source et commerciales de votre organisation.`})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`comment-cela-fonctionne-avec-github`,children:`Comment cela fonctionne avec GitHub`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Prérequis`}),` Vous devez avoir installé et configuré la `,_jsx(_components.a,{href:`github`,children:`Corgea GitHub App`}),` avec les autorisations de dépôt requises.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Soumission de pull request`,children:_jsx(_components.p,{children:`Le développeur soumet une pull request avec des modifications de code`})}),_jsx(Step,{title:`Analyse automatisée`,children:_jsx(_components.p,{children:`Le système analyse les modifications du code au regard des règles de blocage actives`})}),_jsxs(Step,{title:`Validation des règles`,children:[_jsx(_components.p,{children:`Si des violations sont détectées, la pull request est automatiquement bloquée`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_blocked.png?fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=39013c8f8163f96d432b0f9bd4abbc05`,style:{borderRadius:`0.5rem`},\"data-og-width\":`2776`,width:`2776`,\"data-og-height\":`1034`,height:`1034`,\"data-path\":`images/blocking_rules_pr_blocked.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_blocked.png?w=280\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=a30829a8397256d24bf99e7714ff7e30 280w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_blocked.png?w=560\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=b52725944e1ae30ce07dba74e8a78478 560w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_blocked.png?w=840\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=e2e907951bbab46eafb1b64a6100d529 840w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_blocked.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=c14190cd9d640387e7fe0acef6794298 1100w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_blocked.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=20a90628f1983af3321598d13d2379ce 1650w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_blocked.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=e01f67509e07a92988339aeb7db7a652 2500w`})})]}),_jsxs(Step,{title:`Notification au développeur`,children:[_jsx(_components.p,{children:`Le développeur reçoit une notification détaillée concernant les violations des règles`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_details.png?fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=4ac0e073341d12a425db9a4412e55b3e`,style:{borderRadius:`0.5rem`},\"data-og-width\":`3078`,width:`3078`,\"data-og-height\":`1834`,height:`1834`,\"data-path\":`images/blocking_rules_pr_details.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_details.png?w=280\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=993461300634968ea1133e1f1075f318 280w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_details.png?w=560\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=c26d7fbd66d8381ae4718b7ea7937556 560w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_details.png?w=840\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=8e23098e502c5bb6e23db507851b14d4 840w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_details.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=7fc794132c8af8c5aaaa5ba8568c32af 1100w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_details.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=8614207f8ae7e8191e35f398b06b5d1f 1650w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_pr_details.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=d53184a432c41abbf6718019d4b3315d 2500w`})})]}),_jsx(Step,{title:`Résolution`,children:_jsx(_components.p,{children:`Avant que la fusion ne soit autorisée, le développeur doit corriger les violations et les marquer comme Fixed, ou les classer comme False Positive ou Accepted Risk`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`comment-cela-fonctionne-avec-azure-devops`,children:`Comment cela fonctionne avec Azure DevOps`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Prérequis`}),` Assurez-vous que l’`,_jsx(_components.a,{href:`azure_devops`,children:`intégration Azure DevOps`}),` avec Corgea est configurée et que vous disposez des autorisations nécessaires.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Soumission de pull request`,children:_jsx(_components.p,{children:`Un développeur soumet une pull request avec des modifications de code dans Azure DevOps.`})}),_jsx(Step,{title:`Analyse automatisée`,children:_jsx(_components.p,{children:`Le système évalue les modifications du code selon les règles de blocage actives définies dans Corgea.`})}),_jsxs(Step,{title:`Validation des règles`,children:[_jsx(_components.p,{children:`Si des violations sont détectées, la pull request est automatiquement bloquée.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_blocking_rules_pr_blocked.png?fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=a85aa91d3cea8d9572197b863bafa4e4`,style:{borderRadius:`0.5rem`},\"data-og-width\":`966`,width:`966`,\"data-og-height\":`512`,height:`512`,\"data-path\":`images/azure_blocking_rules_pr_blocked.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_blocking_rules_pr_blocked.png?w=280\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=86916f9d80e1170fdac3a7a6581c11ed 280w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_blocking_rules_pr_blocked.png?w=560\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=1d9df77a9d453847fbbcde2404cb914c 560w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_blocking_rules_pr_blocked.png?w=840\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=0e07c663b2bd7279f941c7236fe8db5c 840w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_blocking_rules_pr_blocked.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=b195bcc896967e0a3af72fe6adf9bf08 1100w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_blocking_rules_pr_blocked.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=d73a3cc8f4f2a5bcf17b500f2d33cada 1650w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_blocking_rules_pr_blocked.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=b9b50b6d863396db4f51426e7c52e230 2500w`})}),_jsx(_components.p,{children:`Le développeur ne peut pas fusionner la pull request tant que les violations ne sont pas résolues.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops_merging_blocked.png?fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=1ecb01eb911476a19b0265a3b56dad72`,style:{borderRadius:`0.5rem`},\"data-og-width\":`2900`,width:`2900`,\"data-og-height\":`2630`,height:`2630`,\"data-path\":`images/azure-devops_merging_blocked.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops_merging_blocked.png?w=280\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=37a83ad08ba63540b6a96ded9fc2cded 280w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops_merging_blocked.png?w=560\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=f5abe6837c47c9a5301c45170b1cc4b2 560w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops_merging_blocked.png?w=840\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=af879f69a82cef36b02f696fd2567b2f 840w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops_merging_blocked.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=deff84406516ed9ad2994dbbc1008e3d 1100w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops_merging_blocked.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=02811d94253b0fee59bffa0895e5ad6f 1650w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops_merging_blocked.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=3c2dfcc3cf1ee386008c1e32f8363064 2500w`})})]}),_jsxs(Step,{title:`Notification au développeur`,children:[_jsx(_components.p,{children:`Le développeur reçoit un lien vers les informations détaillées sur les problèmes ayant entraîné l’échec, dans la page de scan Corgea.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_see_details_of_issues.png?fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=e5e94b8c2fec2b7abab7eb76a37533b1`,style:{borderRadius:`0.5rem`},\"data-og-width\":`2696`,width:`2696`,\"data-og-height\":`1556`,height:`1556`,\"data-path\":`images/azure_see_details_of_issues.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_see_details_of_issues.png?w=280\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=b9e1574b516fa076e8dd9ea53b4ea330 280w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_see_details_of_issues.png?w=560\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=02f81fbacf31ed9895533fc0769d1fbb 560w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_see_details_of_issues.png?w=840\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=69bfc4d27b08d73c5b5390623f2a3199 840w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_see_details_of_issues.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=da218b53310d9dc4bf4455e13c0b6a1f 1100w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_see_details_of_issues.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=694c295b80955a6b8023dfd6e153b8ab 1650w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure_see_details_of_issues.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=c979dea0fc5967810d2feed2fe0c42ac 2500w`})})]}),_jsx(Step,{title:`Résolution`,children:_jsx(_components.p,{children:`Le développeur doit résoudre les violations en les corrigeant ou en les marquant comme False Positive ou Accepted Risk avant que la fusion puisse se poursuivre.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`guide-d’utilisation`,children:`Guide d’utilisation`}),`\n`,_jsx(Heading,{level:`3`,id:`création-d’une-nouvelle-règle-de-blocage`,children:`Création d’une nouvelle règle de blocage`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Commencer la création`,children:_jsx(_components.p,{children:`Cliquez sur le bouton « Add Blocking Rule »`})}),_jsxs(Step,{title:`Choisir le type de règle`,children:[_jsx(_components.p,{children:`Sélectionnez le type de règle de blocage :`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Code Vulnerability`}),` : bloque les pull requests selon les problèmes de sécurité du code (résultats SAST)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dependency Vulnerability`}),` : bloque les pull requests selon les dépendances vulnérables (résultats SCA)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`License Compliance`}),` : bloque les dépendances selon les licences SPDX refusées ou les familles de licences`]}),`\n`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create.png?fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=8dcdba40b68a4f557b9af9b596629262`,style:{borderRadius:`0.5rem`},alt:`Add Blocking Rule modal with Applies To, rule types, and Issue Type`,\"data-og-width\":`459`,width:`459`,\"data-og-height\":`969`,height:`969`,\"data-path\":`images/blocking_rule_create.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create.png?w=280\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=054d84d66c6f48f696d828c0efa94f28 280w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create.png?w=560\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=c57934927acb0f211632bc15c5699d98 560w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create.png?w=840\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=036c71d17df171e600be8149e3bae414 840w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create.png?w=1100\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=155c38b31ee5862832c67fc3d14ca15e 1100w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create.png?w=1650\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=e3aa6754cb1e3e51ed3aeb2676f6a962 1650w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create.png?w=2500\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=e9fdb9669593a43cb545adfd04f0e8dd 2500w`})})]}),_jsxs(Step,{title:`Informations de base`,children:[_jsxs(_components.p,{children:[`Saisissez le nom et la description de la règle, puis choisissez `,_jsx(_components.strong,{children:`Applies To`}),` :`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pull Requests`}),` applique automatiquement la règle dans les vérifications de pull request.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`CI`}),` applique la règle uniquement lorsqu’un pipeline la nomme avec `,_jsx(_components.code,{children:`corgea scan --block-on \u003cslug>`}),`. Les règles CI ne bloquent pas les pull requests.`]}),`\n`]}),_jsxs(_components.p,{children:[`Les nouvelles règles utilisent `,_jsx(_components.strong,{children:`Pull Requests`}),` par défaut. Corgea génère le slug à partir du nom de la règle et l’affiche dans la liste des règles.`]}),_jsx(_components.p,{children:`Les règles de pull request ne commentent que les résultats qui nécessitent une action. Corgea ignore les commentaires pour les résultats confirmés comme inaccessibles, ceux mis en attente parce qu’ils sont considérés comme des faux positifs ou proviennent de langages non pris en charge, ainsi que ceux situés dans des chemins ignorés par le projet. Ces résultats restent disponibles dans Corgea pour examen, mais ne bloquent pas la pull request.`}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create_ci_license.png?fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=218cc233de7f4711f466cb92303eaf8c`,style:{borderRadius:`0.5rem`},alt:`Add Blocking Rule modal with CI selected and License Compliance configured`,\"data-og-width\":`469`,width:`469`,\"data-og-height\":`946`,height:`946`,\"data-path\":`images/blocking_rule_create_ci_license.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create_ci_license.png?w=280\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=bda2ae30611144e535eb3041ddf93fa7 280w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create_ci_license.png?w=560\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=0f5871ab6a6a37ba21752de25ee2bbf8 560w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create_ci_license.png?w=840\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=51fc5c2770cf781282b6bf209fae4f15 840w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create_ci_license.png?w=1100\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=4d3b6e80aceaf0eef8a619d78a543603 1100w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create_ci_license.png?w=1650\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=38a3cba1b960dff2533d5822af289b37 1650w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rule_create_ci_license.png?w=2500\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=dd1d7c2fbf0c19a69c5e131f4a9495cb 2500w`})})]}),_jsxs(Step,{title:`Configurer les paramètres`,children:[_jsxs(_components.p,{children:[`Pour les règles `,_jsx(_components.strong,{children:`Code Vulnerability`}),` : choisissez un `,_jsx(_components.strong,{children:`Issue Type`}),` afin d’appliquer la règle à `,_jsx(_components.strong,{children:`All`}),` les résultats, uniquement aux `,_jsx(_components.strong,{children:`Vulnerabilities`}),` ou uniquement aux résultats de `,_jsx(_components.strong,{children:`Code Quality`}),`. `,_jsx(_components.strong,{children:`All`}),` est la valeur par défaut et préserve le comportement des règles existantes. Sélectionnez ensuite les niveaux d’urgence (Critical, High, Medium ou Low) et/ou les CWE ciblées ; au moins un de ces critères est requis.`]}),_jsxs(_components.p,{children:[`Pour les règles `,_jsx(_components.strong,{children:`Dependency Vulnerability`}),` : choisissez un filtrage par sévérité ou par score CVSS. Sélectionnez les niveaux d’urgence (Critical, High, Medium ou Low), ou saisissez un score CVSS minimal et maximal compris entre 0,0 et 10,0 afin de bloquer les dépendances vulnérables dans cette plage inclusive. Si la règle s’applique à la CI, vous pouvez également sélectionner un ou plusieurs états d’`,_jsx(_components.strong,{children:`Accessibilité`}),` pour la restreindre davantage — voir `,_jsx(_components.a,{href:`#reachability`,children:`Filtrage par accessibilité`}),`.`]}),_jsxs(_components.p,{children:[`Pour les règles `,_jsx(_components.strong,{children:`License Compliance`}),` : sélectionnez au moins une famille de licences refusée (Copyleft, Permissive ou Commercial) ou saisissez un ou plusieurs identifiants SPDX. Une dépendance est bloquée lorsqu’une licence signalée correspond à une famille sélectionnée ou à un ID spécifique.`]})]}),_jsx(Step,{title:`Définir le périmètre`,children:_jsx(_components.p,{children:`Choisissez les projets concernés et/ou les tags de projet (optionnel). Une règle s’applique lorsqu’un projet est sélectionné directement ou possède un tag sélectionné. Si aucun projet ou tag n’est sélectionné, la règle s’applique à tous les projets.`})}),_jsx(Step,{title:`Sauvegarder`,children:_jsx(_components.p,{children:`Révisez et cliquez sur « Create »`})})]}),`\n`,_jsx(Heading,{level:`3`,id:`gestion-des-règles-existantes`,children:`Gestion des règles existantes`}),`\n`,_jsxs(_components.p,{children:[`Recherchez les règles par nom ou par paramètre, ou filtrez la liste par tag de projet ou par cible `,_jsx(_components.strong,{children:`Applies To`}),`. Le tableau des règles affiche le slug de chaque règle dans la colonne `,_jsx(_components.strong,{children:`ID`}),` et présente le périmètre projet, le type de règle et la cible `,_jsx(_components.strong,{children:`Pull Requests`}),` ou `,_jsx(_components.strong,{children:`CI`}),` sous `,_jsx(_components.strong,{children:`Triggers On`}),`. Sélectionnez un slug pour le copier et l’utiliser dans une commande CI. Les règles sans périmètre de projet ou de tag s’appliquent à tous les projets ; les longues listes sont regroupées derrière une infobulle `,_jsx(_components.strong,{children:`+N more`}),`.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rules_list.png?fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=fde00215e97e017b81af0100480d9ad4`,style:{borderRadius:`0.5rem`},alt:`Blocking rules list showing slug, Triggers On chips, and CI badge`,\"data-og-width\":`1684`,width:`1684`,\"data-og-height\":`426`,height:`426`,\"data-path\":`images/blocking_rules_list.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rules_list.png?w=280\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=8c06df3c337c81f67933b5088b7e87ed 280w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rules_list.png?w=560\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=f8399245a6b352a83855e28215cb09ec 560w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rules_list.png?w=840\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=89883a75f698e720951a0d7b1b6f32d5 840w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rules_list.png?w=1100\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=7b06e9d7bb0079ffbeee0130091bca60 1100w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rules_list.png?w=1650\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=5b1eab64e860f6e34670f47dc121c539 1650w, https://mintcdn.com/corgea/vl87stO-uNzXPjoi/images/blocking_rules_list.png?w=2500\u0026fit=max\u0026auto=format\u0026n=vl87stO-uNzXPjoi\u0026q=85\u0026s=33c8434de4ae15c1aa2de026712993ea 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`appliquer-les-règles-en-ci`,children:`Appliquer les règles en CI`}),`\n`,_jsxs(_components.p,{children:[`Créez une règle active avec `,_jsx(_components.strong,{children:`Applies To`}),` défini sur `,_jsx(_components.strong,{children:`CI`}),`, puis passez son slug à la commande de scan. Nommez les règles d’après la condition qui les déclenche — par exemple `,_jsx(_components.code,{children:`criticals`}),`, et non `,_jsx(_components.code,{children:`no-criticals`}),` — afin que `,_jsx(_components.code,{children:`--block-on`}),` se lise comme une affirmation directe. `,_jsx(_components.code,{children:`--block-on`}),` nécessite Corgea CLI 1.10.0 ou une version ultérieure.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`corgea`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` scan`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --block-on`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` criticals`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Pour appliquer plusieurs règles CI, fournissez leurs slugs sous forme de liste séparée par des virgules. La commande échoue lorsqu’un résultat viole l’une des règles nommées. Un slug inconnu, une règle inactive ou une règle applicable aux pull requests est traité comme une erreur de configuration et n’est pas ignoré. `,_jsx(_components.code,{children:`--block-on`}),` n’est pris en charge que par le scanner BLAST et ne peut pas être combiné avec `,_jsx(_components.code,{children:`--fail`}),` ou `,_jsx(_components.code,{children:`--fail-on`}),`.`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Modifier la règle`,id:`modifier-la-r%C3%A8gle`,children:_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Localiser la règle dans le tableau`}),`\n`,_jsx(_components.li,{children:`Cliquez sur le bouton « Edit »`}),`\n`,_jsx(_components.li,{children:`Modifier les paramètres si nécessaire`}),`\n`,_jsx(_components.li,{children:`Cliquez sur « Update » pour enregistrer`}),`\n`]})}),_jsx(Tab,{title:`Basculer l’état`,id:`basculer-l%E2%80%99%C3%A9tat`,children:_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Trouver la règle dans le tableau`}),`\n`,_jsx(_components.li,{children:`Cliquez sur « Toggle Status »`}),`\n`,_jsx(_components.li,{children:`Confirmer le changement de statut`}),`\n`]})}),_jsx(Tab,{title:`Voir les détails`,id:`voir-les-d%C3%A9tails`,children:_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Cliquez sur le nom de la règle`}),`\n`,_jsx(_components.li,{children:`Consultez les informations complètes`}),`\n`,_jsx(_components.li,{children:`Fermez le modal une fois terminé`}),`\n`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`afficher-les-règles-appliquées-aux-scans`,children:`Afficher les règles appliquées aux scans`}),`\n`,_jsx(_components.p,{children:`Vous pouvez consulter les règles de blocage qui s’appliquent à vos scans à deux endroits :`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Sur la page des détails du scan, vous verrez une section « Blocking Rules » affichant toutes les règles évaluées :`}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_scan_details.png?fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=a132f7927273e0eaf8bdb84065bbcbf4`,style:{borderRadius:`0.5rem`},\"data-og-width\":`1518`,width:`1518`,\"data-og-height\":`1082`,height:`1082`,\"data-path\":`images/blocking_rules_scan_details.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_scan_details.png?w=280\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=2506f62e23926618d77b374cc6ce8af3 280w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_scan_details.png?w=560\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=91aea5d0567b8909be5664ec94af61b5 560w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_scan_details.png?w=840\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=c67566733fb8742f636ab401414ba9f7 840w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_scan_details.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=1358301c8bdac7c1c0983a9276800f55 1100w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_scan_details.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=a6034b5277cd2545bae8dcdb914c793e 1650w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rules_scan_details.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=4d1abeac5e45021533d8dbf10b0dd78b 2500w`})}),`\n`,_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsx(_components.li,{children:`Dans les détails d’un problème, vous pouvez voir les règles de blocage qu’il a déclenchées :`}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rule_issue_details.png?fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=433dd74d99f714b953608a1e59ac973a`,style:{borderRadius:`0.5rem`},\"data-og-width\":`3072`,width:`3072`,\"data-og-height\":`1124`,height:`1124`,\"data-path\":`images/blocking_rule_issue_details.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rule_issue_details.png?w=280\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=f018e1e8b4c4d92354a127e5716a8370 280w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rule_issue_details.png?w=560\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=bda0c51d92e6a2caa2f3873e8eac83c3 560w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rule_issue_details.png?w=840\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=e87b4d6f3d1cf506d64b64640d19c675 840w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rule_issue_details.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=7bd96c3f0fe932b1f8570a9c31539b93 1100w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rule_issue_details.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=f0d374fd9773f3a7e3c9def6a3ac77d1 1650w, https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/blocking_rule_issue_details.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uxLuQR4653lM43Tj\u0026q=85\u0026s=3a59b8689328a1a8865b890a194cec4d 2500w`})}),`\n`,_jsx(_components.p,{children:`Cela facilite la compréhension des règles qui affectent vos scans et des problèmes spécifiques, vous aidant à identifier pourquoi certains changements peuvent être bloqués.`}),`\n`,_jsx(Heading,{level:`2`,id:`reachability`,children:`Filtrage par accessibilité`}),`\n`,_jsxs(_components.p,{children:[`Dans la plupart des projets, la majorité des dépendances vulnérables ne sont jamais réellement utilisées par votre code. Le filtrage par accessibilité permet à une règle `,_jsx(_components.strong,{children:`Dependency Vulnerability`}),` de ne bloquer que les résultats qui importent : une CVE critique dans un paquet que vous n’appelez jamais ne fait plus échouer votre pipeline.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Disponible uniquement pour les règles CI`}),` L’accessibilité est analysée sur les scans que vous lancez vous-même avec `,_jsx(_components.code,{children:`corgea scan`}),`, et non sur ceux déclenchés automatiquement à l’ouverture d’une pull request. Définissez `,_jsx(_components.strong,{children:`Applies To`}),` sur `,_jsx(_components.strong,{children:`CI`}),` pour utiliser ce filtre ; l’option est masquée pour les règles Pull Request. Référencez ensuite la règle depuis votre pipeline avec `,_jsx(_components.code,{children:`corgea scan --block-on \u003cslug>`}),`.`]})}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Prérequis`}),` L’accessibilité nécessite l’activation de `,_jsx(_components.strong,{children:`AI-Native SCA`}),` pour votre organisation. Sans cette option, aucune dépendance n’est analysée et une règle utilisant ce filtre ne bloque jamais rien. L’éditeur de règles vous avertit lorsque l’option est désactivée.`]})}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/corgea/gpJCGMHYx471xVvQ/images/blocking_rule_create_ci_reachability.png?fit=max\u0026auto=format\u0026n=gpJCGMHYx471xVvQ\u0026q=85\u0026s=571c043010e6323e09fc1523cfd8a5b3`,style:{borderRadius:`0.5rem`},alt:`Add Blocking Rule modal with CI and Dependency Vulnerability selected and Reachable checked under Reachability`,\"data-og-width\":`447`,width:`447`,\"data-og-height\":`884`,height:`884`,\"data-path\":`images/blocking_rule_create_ci_reachability.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/corgea/gpJCGMHYx471xVvQ/images/blocking_rule_create_ci_reachability.png?w=280\u0026fit=max\u0026auto=format\u0026n=gpJCGMHYx471xVvQ\u0026q=85\u0026s=66a4ca8c20b9f1f1a54ed3a6814668b6 280w, https://mintcdn.com/corgea/gpJCGMHYx471xVvQ/images/blocking_rule_create_ci_reachability.png?w=560\u0026fit=max\u0026auto=format\u0026n=gpJCGMHYx471xVvQ\u0026q=85\u0026s=3a8b9ca58464b216ff030c6f0c47ae23 560w, https://mintcdn.com/corgea/gpJCGMHYx471xVvQ/images/blocking_rule_create_ci_reachability.png?w=840\u0026fit=max\u0026auto=format\u0026n=gpJCGMHYx471xVvQ\u0026q=85\u0026s=6cceeed7d4097b5ea18b37b3e5c3b15f 840w, https://mintcdn.com/corgea/gpJCGMHYx471xVvQ/images/blocking_rule_create_ci_reachability.png?w=1100\u0026fit=max\u0026auto=format\u0026n=gpJCGMHYx471xVvQ\u0026q=85\u0026s=e37a3d1e43b62043d3390608dfa36c44 1100w, https://mintcdn.com/corgea/gpJCGMHYx471xVvQ/images/blocking_rule_create_ci_reachability.png?w=1650\u0026fit=max\u0026auto=format\u0026n=gpJCGMHYx471xVvQ\u0026q=85\u0026s=d794c1e1d1a29b9ff2edcea67add2c28 1650w, https://mintcdn.com/corgea/gpJCGMHYx471xVvQ/images/blocking_rule_create_ci_reachability.png?w=2500\u0026fit=max\u0026auto=format\u0026n=gpJCGMHYx471xVvQ\u0026q=85\u0026s=c680e20859aaba7e1ccca3e8b8d632f5 2500w`})}),`\n`,_jsx(_components.p,{children:`Sélectionnez un ou plusieurs des états suivants :`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`État`}),_jsx(_components.th,{children:`Signification`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Reachable`})}),_jsx(_components.td,{children:`La fonction vulnérable est accessible depuis le code de votre application.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Not Reachable`})}),_jsx(_components.td,{children:`La dépendance est utilisée, mais la fonction vulnérable n’est pas accessible.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Unused Dependency`})}),_jsx(_components.td,{children:`La dépendance est déclarée mais n’est utilisée nulle part dans la base de code.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Unknown`})}),_jsx(_components.td,{children:`La dépendance a été analysée, mais l’accessibilité n’a pas pu être déterminée.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Le filtre d’accessibilité est `,_jsx(_components.strong,{children:`combiné avec`}),` le filtre de sévérité, de CVSS ou Malicious, et ne le remplace pas : un résultat doit correspondre aux deux. Une règle définie sur la sévérité Critical et sur Reachable ne bloque que les vulnérabilités critiques qui sont également accessibles. Laisser l’accessibilité vide conserve le comportement existant de la règle, qui bloque indépendamment de l’accessibilité.`]}),`\n`,_jsx(Heading,{level:`3`,id:`attente-de-l’analyse`,children:`Attente de l’analyse`}),`\n`,_jsxs(_components.p,{children:[`L’analyse d’accessibilité s’exécute après la fin du scan lui-même : `,_jsx(_components.code,{children:`corgea scan`}),` continue donc d’interroger Corgea jusqu’à ce qu’elle se termine, au lieu de renvoyer un résultat immédiatement. L’analyse s’achève une fois toutes les dépendances directes analysées, ce qui prend généralement quelques minutes et au maximum 30.`]}),`\n`,_jsxs(_components.p,{children:[`Ce filtre `,_jsx(_components.strong,{children:`échoue de façon permissive`}),`. Si l’analyse ne peut pas aboutir — la fenêtre de 30 minutes expire, l’analyse échoue, ou AI-Native SCA est désactivé — la règle ne signale aucune violation au lieu de faire échouer votre build. Un pipeline n’est bloqué que sur une accessibilité réellement déterminée par Corgea, jamais sur une analyse manquante.`]}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`corgea scan`}),` échoue de façon restrictive à l’expiration de son propre délai. Corgea CLI 1.13.0 et versions ultérieures autorisent 35 minutes, ce qui dépasse confortablement la fenêtre d’analyse de 30 minutes. Sur une CLI antérieure, le délai est de 15 minutes et peut expirer alors que Corgea analyse encore, faisant échouer le pipeline. Mettez à jour la CLI ou augmentez le délai avec `,_jsx(_components.code,{children:`CORGEA_BLOCKING_RULES_TIMEOUT_SECONDS`}),` :`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`CORGEA_BLOCKING_RULES_TIMEOUT_SECONDS`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`2100`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` corgea`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` scan`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --block-on`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` reachable-criticals`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`exemples`,children:`Exemples`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Blocage de la cryptographie non sécurisée`,icon:`lock`,id:`blocage-de-la-cryptographie-non-securisee`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Type de règle :`}),` Code Vulnerability`]}),_jsx(_components.p,{children:`Créez une règle ciblant CWE-326 (Inadequate Encryption Strength) et CWE-327 (Use of a Broken or Risky Cryptographic Algorithm), avec une urgence « Critical », afin d’empêcher l’utilisation d’un chiffrement faible.`})]}),_jsxs(Accordion,{title:`Faire respecter la qualité du code`,icon:`code`,id:`faire-respecter-la-qualite-du-code`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Type de règle :`}),` Code Vulnerability`]}),_jsxs(_components.p,{children:[`Sélectionnez `,_jsx(_components.strong,{children:`Code Quality`}),` en tant que type de problème, puis établissez une règle pour CWE-398 (Indicator of Poor Code Quality) et CWE-477 (Use of Obsolete Functions) avec une urgence « Medium » pour maintenir les normes de code.`]})]}),_jsxs(Accordion,{title:`Blocage des vulnérabilités critiques de dépendance`,icon:`box`,id:`blocage-des-vulnerabilites-critiques-de-dependance`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Type de règle :`}),` Dependency Vulnerability`]}),_jsx(_components.p,{children:`Créez une règle avec les niveaux d’urgence « Critical » et « High » pour bloquer automatiquement toute pull request qui introduit des dépendances présentant des vulnérabilités critiques ou de sévérité élevée. Vous protégez ainsi votre chaîne d’approvisionnement contre les paquets vulnérables connus.`})]}),_jsxs(Accordion,{title:`Blocage des dépendances par plage CVSS`,icon:`gauge`,id:`blocage-des-dependances-par-plage-cvss`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Type de règle :`}),` Dependency Vulnerability`]}),_jsx(_components.p,{children:`Créez une règle qui filtre par CVSS comme 7.0 à 10.0, pour bloquer les pull requests introduisant des dépendances vulnérables dans cette plage de score.`})]}),_jsxs(Accordion,{title:`Bloquer uniquement les vulnérabilités critiques accessibles`,icon:`diagram-project`,id:`bloquer-uniquement-les-vulnerabilites-critiques-accessibles`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Type de règle :`}),` Dependency Vulnerability — `,_jsx(_components.strong,{children:`S’applique à :`}),` CI`]}),_jsxs(_components.p,{children:[`Sélectionnez les niveaux d’urgence « Critical » et « High », puis sélectionnez `,_jsx(_components.strong,{children:`Reachable`}),` sous Accessibilité. La règle ne fait échouer un pipeline que lorsqu’une vulnérabilité critique ou élevée est accessible depuis le code de votre application, afin que les paquets inutilisés ou inaccessibles n’interrompent pas les développeurs. C’est une bonne première règle d’accessibilité, car elle restreint une règle de sévérité existante au lieu d’élargir ce qui bloque.`]})]}),_jsxs(Accordion,{title:`Bloquer les dépendances inutilisées`,icon:`broom`,id:`bloquer-les-dependances-inutilisees`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Type de règle :`}),` Dependency Vulnerability — `,_jsx(_components.strong,{children:`S’applique à :`}),` CI`]}),_jsxs(_components.p,{children:[`Sélectionnez `,_jsx(_components.strong,{children:`Unused Dependency`}),` sous Accessibilité, seule, sans filtre de sévérité ni de CVSS. La règle fait échouer un pipeline qui introduit des paquets vulnérables que rien n’utilise dans la base de code, incitant les développeurs à supprimer la dépendance plutôt qu’à la mettre à jour.`]})]}),_jsxs(Accordion,{title:`Blocage des dépendances Copyleft`,icon:`file-contract`,id:`blocage-des-dependances-copyleft`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Type de règle :`}),` License Compliance`]}),_jsxs(_components.p,{children:[`Sélectionnez la famille `,_jsx(_components.strong,{children:`Copyleft`}),` pour bloquer les dépendances dont les licences signalées appartiennent à cette famille. Ajoutez des identifiants SPDX spécifiques lorsque votre politique nécessite une liste de refus plus étroite.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`bonnes-pratiques`,children:`Bonnes pratiques`}),`\n`,_jsx(Card,{title:`Conseils d’implémentation`,icon:`lightbulb`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Commencez par les règles essentielles et développez progressivement`}),`\n`,_jsxs(_components.li,{children:[`Pour les `,_jsx(_components.strong,{children:`règles Dependency Vulnerability`}),`, commencez par la sévérité Critical uniquement ou par une plage CVSS ciblée, puis élargissez les critères à mesure que votre équipe s’adapte`]}),`\n`,_jsxs(_components.li,{children:[`Sur les `,_jsx(_components.strong,{children:`règles CI`}),`, ajoutez un filtre d’accessibilité `,_jsx(_components.strong,{children:`Reachable`}),` à une règle de sévérité existante pour réduire le bruit sans affaiblir la couverture des vulnérabilités réellement exploitables`]}),`\n`,_jsxs(_components.li,{children:[`Pour les `,_jsx(_components.strong,{children:`règles Code Vulnerability`}),`, concentrez-vous d’abord sur les CWE les plus impactants (par exemple, failles d’injection, problèmes d’authentification)`]}),`\n`,_jsx(_components.li,{children:`Revues régulières et mises à jour`}),`\n`,_jsx(_components.li,{children:`Documentation claire et formation d’équipe`}),`\n`,_jsx(_components.li,{children:`Encourager les retours et la collaboration`}),`\n`,_jsx(_components.li,{children:`Utilisation stratégique des niveaux d’urgence`}),`\n`,_jsx(_components.li,{children:`Considérez les tags de projet lorsque la même règle doit couvrir un groupe de projets liés`}),`\n`]})}),`\n`,_jsx(Heading,{level:`2`,id:`dépannage`,children:`Dépannage`}),`\n`,_jsx(Warning,{children:`Si une pull request est bloquée de façon inattendue, vérifiez d’abord les règles actives et leurs configurations.`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Problèmes courants`,icon:`bug`,id:`problemes-courants`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Comportement de blocage inattendu`}),`\n`,_jsx(_components.li,{children:`Problèmes de ciblage par règles`}),`\n`,_jsx(_components.li,{children:`Problèmes liés à la portée du projet`}),`\n`]})}),_jsx(Accordion,{title:`Étapes de résolution`,icon:`wrench`,id:`etapes-de-resolution`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Vérifier les configurations des règles`}),`\n`,_jsx(_components.li,{children:`Vérifier le ciblage des CWE`}),`\n`,_jsx(_components.li,{children:`Confirmer les paramètres du projet`}),`\n`,_jsx(_components.li,{children:`Contactez le support si besoin`}),`\n`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Règles de blocage","description":"Les règles de blocage appliquent les normes de sécurité et de qualité dans les pull requests ou les pipelines CI.","href":"/fr/blocking_rules"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Aperçu","slug":"aperçu","depth":2,"children":[{"title":"Fonctionnement","slug":"fonctionnement","depth":3,"children":[]},{"title":"Pour qui c’est","slug":"pour-qui-c’est","depth":3,"children":[]}]},{"title":"Caractéristiques clés et avantages","slug":"caractéristiques-clés-et-avantages","depth":2,"children":[]},{"title":"Types de règles","slug":"rule-types","depth":2,"children":[]},{"title":"Comment cela fonctionne avec GitHub","slug":"comment-cela-fonctionne-avec-github","depth":2,"children":[]},{"title":"Comment cela fonctionne avec Azure DevOps","slug":"comment-cela-fonctionne-avec-azure-devops","depth":2,"children":[]},{"title":"Guide d’utilisation","slug":"guide-d’utilisation","depth":2,"children":[{"title":"Création d’une nouvelle règle de blocage","slug":"création-d’une-nouvelle-règle-de-blocage","depth":3,"children":[]},{"title":"Gestion des règles existantes","slug":"gestion-des-règles-existantes","depth":3,"children":[]},{"title":"Appliquer les règles en CI","slug":"appliquer-les-règles-en-ci","depth":3,"children":[]},{"title":"Afficher les règles appliquées aux scans","slug":"afficher-les-règles-appliquées-aux-scans","depth":3,"children":[]}]},{"title":"Filtrage par accessibilité","slug":"reachability","depth":2,"children":[{"title":"Attente de l’analyse","slug":"attente-de-l’analyse","depth":3,"children":[]}]},{"title":"Exemples","slug":"exemples","depth":2,"children":[]},{"title":"Bonnes pratiques","slug":"bonnes-pratiques","depth":2,"children":[]},{"title":"Dépannage","slug":"dépannage","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"corgea","siteName":"Corgea Documentation","title":"Règles de blocage - Corgea Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/blocking_rules","matchLevel":1},"de":{"href":"/de/blocking_rules","matchLevel":1},"fr":{"href":"/fr/blocking_rules","matchLevel":0},"es":{"href":"/es/blocking_rules","matchLevel":1},"ja":{"href":"/ja/blocking_rules","matchLevel":1}}},"lastModified":"2026-09-07T17:47:40.766Z","originalFileLocation":"fr/blocking_rules.mdx","locale":"fr"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Les règles de blocage appliquent les normes de sécurité et de qualité dans les pull requests ou les pipelines CI.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Corgea Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Règles de blocage - Corgea Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Les règles de blocage appliquent les normes de sécurité et de qualité dans les pull requests ou les pipelines CI.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Corgea Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.corgea.app/fr/blocking_rules\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://corgea.mintlify.app/_mintlify/api/og/v2?division=Gestion+des+politiques\u0026amp;title=R%C3%A8gles+de+blocage\u0026amp;description=Les+r%C3%A8gles+de+blocage+appliquent+les+normes+de+s%C3%A9curit%C3%A9+et+de+qualit%C3%A9+dans+les+pull+requests+ou+les+pipelines+CI.\u0026amp;theme=2deb6b7fd8ec87b21784abb2\u0026amp;signature=e299eed0c4eb9408ebf01d84b8864c204b62fd1b10d9074c86f24ed9a2f83b29\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Règles de blocage - Corgea Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Les règles de blocage appliquent les normes de sécurité et de qualité dans les pull requests ou les pipelines CI.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://corgea.mintlify.app/_mintlify/api/og/v2?division=Gestion+des+politiques\u0026amp;title=R%C3%A8gles+de+blocage\u0026amp;description=Les+r%C3%A8gles+de+blocage+appliquent+les+normes+de+s%C3%A9curit%C3%A9+et+de+qualit%C3%A9+dans+les+pull+requests+ou+les+pipelines+CI.\u0026amp;theme=2deb6b7fd8ec87b21784abb2\u0026amp;signature=e299eed0c4eb9408ebf01d84b8864c204b62fd1b10d9074c86f24ed9a2f83b29\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/corgea/S1IZmkPVVuf-3VMn/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Corgea Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F56C26\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.corgea.app/fr/blocking_rules\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/fr/blocking_rules.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.corgea.app/fr/blocking_rules\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.corgea.app/blocking_rules\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.corgea.app/de/blocking_rules\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.corgea.app/es/blocking_rules\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.corgea.app/ja/blocking_rules\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.corgea.app/blocking_rules\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.corgea.app/#organization\",\"name\":\"Corgea Documentation\",\"url\":\"https://docs.corgea.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/corgea/mpJUc1GyXtnVYEyT/logo/logo.png?fit=max\u0026auto=format\u0026n=mpJUc1GyXtnVYEyT\u0026q=85\u0026s=f66a9484335ac4db5d5d92e12fd87af6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.corgea.app#website\",\"name\":\"Corgea Documentation\",\"url\":\"https://docs.corgea.app\",\"publisher\":{\"@id\":\"https://docs.corgea.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.corgea.app/fr/blocking_rules#webpage\",\"url\":\"https://docs.corgea.app/fr/blocking_rules\",\"name\":\"Règles de blocage\",\"description\":\"Les règles de blocage appliquent les normes de sécurité et de qualité dans les pull requests ou les pipelines CI.\",\"dateModified\":\"2026-09-07T17:47:40.766Z\",\"isPartOf\":{\"@id\":\"https://docs.corgea.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.corgea.app/fr/blocking_rules#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.corgea.app/fr/blocking_rules#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Fonctionnalités principales\",\"item\":\"https://docs.corgea.app/fr/agent\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gestion des politiques\",\"item\":\"https://docs.corgea.app/fr/policies\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Règles de blocage\",\"item\":\"https://docs.corgea.app/fr/blocking_rules\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.corgea.app/fr/blocking_rules#article\",\"headline\":\"Règles de blocage\",\"name\":\"Règles de blocage\",\"description\":\"Les règles de blocage appliquent les normes de sécurité et de qualité dans les pull requests ou les pipelines CI.\",\"url\":\"https://docs.corgea.app/fr/blocking_rules\",\"mainEntityOfPage\":{\"@id\":\"https://docs.corgea.app/fr/blocking_rules#webpage\"},\"dateModified\":\"2026-09-07T17:47:40.766Z\",\"publisher\":{\"@id\":\"https://docs.corgea.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.corgea.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Corgea Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Corgea Documentation","nav":{"global":null,"languages":[{"language":"en","default":true,"navbar":{"links":[{"href":"mailto:help@corgea.com","label":"Support"}],"primary":{"type":"button","label":"Go to Corgea","href":"https://www.corgea.app"}},"pages":[{"title":"en","href":"/blocking_rules"}]},{"language":"de","navbar":{"links":[{"href":"mailto:help@corgea.com","label":"Support"}],"primary":{"type":"button","label":"Zu Corgea","href":"https://www.corgea.app"}},"pages":[{"title":"de","href":"/de/blocking_rules"}]},{"language":"fr","navbar":{"links":[{"href":"mailto:help@corgea.com","label":"Assistance"}],"primary":{"type":"button","label":"Accéder à Corgea","href":"https://www.corgea.app"}},"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Bien démarrer","pages":[{"title":"Documentation Corgea","sidebarTitle":"Introduction","mode":"wide","href":"/fr/introduction"},{"title":"Démarrage rapide","href":"/fr/quickstart"},{"title":"Paramètres","href":"/fr/settings"}]},{"group":"Fonctionnalités principales","pages":[{"title":"Corgea Agent","href":"/fr/agent"},{"title":"Revues de conception de sécurité","href":"/fr/security-review"},{"title":"Qualité du code","href":"/fr/code-quality-scanner"},{"title":"Pentesting","href":"/fr/pentesting"},{"group":"Analyse de sécurité","pages":[{"title":"SAST natif de l’IA","href":"/fr/blast"},{"title":"Analyse des secrets","href":"/fr/secret-scanning"},{"title":"Analyse des dépendances (SCA)","href":"/fr/sca"},{"title":"Analyse des images de conteneurs","href":"/fr/container-scanning"},{"title":"Détection de paquets malveillants","href":"/fr/malware-scanning"},{"title":"Analyse PII/PHI","href":"/fr/pii"},{"title":"Analyse Infrastructure as Code (IaC)","href":"/fr/iac"},{"title":"Chargement des scans","href":"/fr/upload-report"},{"title":"Scans planifiés","href":"/fr/scheduled-scans"},{"title":"Empreintes des problèmes","href":"/fr/fingerprint"}]},{"group":"Gestion des résultats","pages":[{"title":"Vulnerabilities Workbench","href":"/fr/vulnerabilities"},{"title":"Application des correctifs","href":"/fr/fixes"},{"title":"Détection de faux positifs","href":"/fr/false_positive"},{"title":"Attribution des problèmes et gestion des statuts","href":"/fr/issue_assignment"},{"title":"Justifications de triage","href":"/fr/triage_justifications"},{"title":"Exportation des problèmes","href":"/fr/issue_export"},{"title":"Gestion de projet","href":"/fr/project"}]},{"group":"Gestion des politiques","pages":[{"title":"PolicyIQ","href":"/fr/policies"},{"title":"Gestion des SLA","description":"Configurez et gérez les accords de niveau de service (SLA) applicables aux problèmes de sécurité","href":"/fr/sla_management"},{"title":"Règles de blocage","href":"/fr/blocking_rules"}]},{"group":"Utilisateurs et groupes","pages":[{"title":"Gestion des utilisateurs","description":"Gérez vos utilisateurs dans Corgea","href":"/fr/user_management"},{"title":"Rôles","href":"/fr/permission_groups"},{"title":"Équipes","href":"/fr/teams"},{"title":"Gestion de l’accès au contenu","href":"/fr/content-access-management"},{"title":"Notifications","href":"/fr/notifications"}]},{"title":"Rapports","href":"/fr/reporting"}]},{"group":"Intégrations","pages":[{"group":"IDE","pages":[{"title":"Visual Studio Code et Cursor","sidebarTitle":"VS Code et Cursor","href":"/fr/vsc_extension"},{"title":"Visual Studio 2022","href":"/fr/vs2022_extension"},{"title":"IDE JetBrains","href":"/fr/jetbrains_extension"}]},{"group":"Gestion du code source","pages":[{"title":"GitHub","href":"/fr/github"},{"title":"GitLab","href":"/fr/gitlab"},{"title":"Azure DevOps","href":"/fr/azure_devops"},{"title":"Bitbucket","href":"/fr/bitbucket"},{"title":"Harness","href":"/fr/harness"}]},{"group":"Gestion des automatisations","pages":[{"title":"JIRA","href":"/fr/jira"},{"title":"Linear","href":"/fr/linear"},{"title":"Slack","href":"/fr/slack"},{"title":"Zapier","href":"/fr/zapier"},{"title":"Webhooks","href":"/fr/webhooks"}]},{"title":"Registres de paquets privés","href":"/fr/private-package-registries"},{"title":"Intégrations avec les agents IA","href":"/fr/agentic_integrations"}]},{"group":"Outils et utilitaires","pages":[{"group":"CLI","pages":[{"title":"CLI","href":"/fr/cli"},{"title":"Analyse des dépendances (CLI)","href":"/fr/cli/deps"}]},{"title":"Model Context Protocol (MCP)","href":"/fr/modelcontextprotocol"}]},{"group":"Versions","pages":[{"title":"Journal des modifications","href":"/fr/changelog"}]},{"group":"Confiance et conformité","pages":[{"title":"Sécurité","href":"/fr/security"}]},{"group":"Authentification","pages":[{"title":"SSO","href":"/fr/sso"},{"title":"Authentification JWT","href":"/fr/jwt-token"}]}]},{"anchor":"État du service","icon":"check","href":"https://status.corgea.app/"},{"anchor":"Blog","icon":"newspaper","href":"https://corgea.com/blog"},{"anchor":"Référence API","icon":"square-terminal","pages":[{"title":"Référence API","href":"/fr/api-reference/introduction"}]}]},{"language":"es","navbar":{"links":[{"href":"mailto:help@corgea.com","label":"Soporte"}],"primary":{"type":"button","label":"Ir a Corgea","href":"https://www.corgea.app"}},"pages":[{"title":"es","href":"/es/blocking_rules"}]},{"language":"ja","navbar":{"links":[{"href":"mailto:help@corgea.com","label":"サポート"}],"primary":{"type":"button","label":"Corgeaを開く","href":"https://www.corgea.app"}},"pages":[{"title":"ja","href":"/ja/blocking_rules"}]}]},"title":"Règles de blocage - Corgea Documentation","buildId":"dpl_9DauxEjb9gzCtcuhPQFbquJvx7FJ","deploymentId":"dpl_9DauxEjb9gzCtcuhPQFbquJvx7FJ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DpBmNN95.js","DynamicMarkdown-BY_qDhTn.js","zoom-image-lightbox-D4WcYaf4.js","PlusIcon-CwhPVjTe.js","lightbox-handle-r17bVUz3.js"]}