Skip to main content

Envoi d’une branche bloquée par la protection par émission de données

La fonctionnalité de protection par émission de données de secret scanning vous protège de manière proactive contre les secrets divulguées dans vos référentiels. Vous pouvez résoudre les envois bloqués et, une fois le secret détecté supprimé, vous pouvez envoyer (push) les modifications à votre branche de travail à partir de la ligne de commande ou de l’interface utilisateur web.

Les Secret scanning est disponible pour les référentiels détenus par l’organisation dans GitHub Enterprise Server si votre entreprise dispose d’une licence pour GitHub Advanced Security. Pour plus d’informations, consultez « À propos des secret scanning sur GitHub Enterprise Server » et « À propos de la GitHub Advanced Security ».

À propos de la protection par émission de données pour secret scanning

La fonctionnalité de protection par émission de données de secret scanning permet d’éviter les fuites de sécurité en analysant les secrets avant d’envoyer des modifications à votre référentiel. Lorsque vous activez la protection des poussées, secret scanning vérifie également les poussées des secrets avec un taux de confiance élevé (ceux identifiés avec un taux faible de faux positifs). Secret scanning liste les secrets qu’elle détecte afin que l’auteur puisse passer en revue les secrets et les supprimer ou, si nécessaire, autoriser ces secrets à être poussés. Pour plus d’informations sur les secrets et fournisseurs de services pris en charge pour la protection par émission de données, consultez « Secret scanning patterns ».

Si vous confirmez qu’un secret est réel, vous devez supprimer le secret de votre branche, de toutes les validations dans lesquelles il apparaît, avant d’envoyer (push) à nouveau.

Conseil Si GitHub bloque un secret alors que selon vous son envoi (push) ne pose pas de problème, vous pouvez autoriser le secret et spécifier la raison pour laquelle il doit être autorisé. Pour plus d’informations sur le contournement de la protection par émission de données d’un secret, consultez « Autoriser un secret bloqué à être envoyé » et « Contournement de la protection par émission de données d’un secret » pour la ligne de commande et l’interface utilisateur web, respectivement.

Résolution d’un envoi (push) bloqué sur la ligne de commande

Quand vous tentez de pousser un secret pris en charge vers un dépôt ou une organisation et que l’secret scanning en tant que protection des poussées est activée, GitHub bloque la poussée. Vous pouvez supprimer le secret de votre branche ou suivre une URL fournie pour autoriser l’envoi (push).

Remarques:

  • Si votre configuration Git prend en charge les envois vers plusieurs branches, et non seulement vers la branche par défaut, votre envoi peut être bloqué en raison de l’envoi (push) de références supplémentaires et involontaires. Pour plus d’informations, consultez les options push.default dans la documentation Git.
  • Si l’secret scanning à l’occasion de l’expiration d’un envoi (push), GitHub exécute toujours une analyse après l’envoi (push).

Si le secret bloqué a été introduit par la dernière validation sur votre branche, vous pouvez suivre l’aide apportée ci-dessous.

  1. Supprimez le secret de votre code.
  2. Validez les modifications à l’aide de git commit --amend.
  3. Envoyer vos modifications avec git push.

Vous pouvez également supprimer le secret s’il apparaît dans une validation antérieure dans l’historique Git.

  1. Utilisez git log pour déterminer la validation exposée dans l’erreur d’envoi (push) arrivant en premier dans l’historique.
  2. Démarrez une relocalisation interactive avec git rebase -i <commit-id>~1. correspond à l’ID de la validation de l’étape 1.
  3. Identifiez votre validation à modifier en passant pick à edit sur la première ligne du texte qui apparaît dans l’éditeur.
  4. Supprimez le secret de votre code.
  5. Validez la modification avec git commit --amend.
  6. Exécutez git rebase --continue pour terminer la relocalisation.

Résolution d’une validation bloquée dans l’interface utilisateur web

Quand vous utilisez l’interface utilisateur web pour tenter de commiter un secret pris en charge vers un dépôt ou une organisation avec l’analyse des secrets activée comme protection des poussées, GitHub bloque le commit.

Vous verrez une bannière en haut de la page avec des informations sur l’emplacement du secret, et le secret sera également souligné dans le fichier afin que vous puissiez le trouver facilement.

Capture d’écran montrant le commit bloqué dans l’interface utilisateur web en raison de la protection des poussées de l’analyse des secrets

Pour résoudre une validation bloquée dans l’interface utilisateur web, vous devez supprimer le secret du fichier ou utiliser la liste déroulante Contourner la protection pour autoriser le secret. Pour plus d’informations sur le contournement de la protection par émission de données à partir de l’interface utilisateur web, consultez « Protection par émissions de données avec l’analyse des secrets ».

Si vous confirmez qu’un secret est réel, vous devez supprimer le secret du fichier. Une fois que vous avez supprimé le secret, la bannière en haut de la page change et vous indique que vous pouvez maintenant commiter vos modifications.