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.

Qui peut utiliser cette fonctionnalité ?

Alertes d’analyse des secrets pour les partenaires s’exécute automatiquement sur les référentiels publics et les packages npm publiques pour informer les fournisseurs de services des fuites de secrets sur GitHub.com.

Les Alertes d’analyse des secrets pour les utilisateurs sont disponibles gratuitement sur tous les dépôts publics. Les organisations qui utilisent GitHub Enterprise Cloud avec une licence pour GitHub Advanced Security peuvent également activer alertes d’analyse des secrets pour les utilisateurs sur leurs dépôts privés et internes. Pour plus d’informations, consultez « À propos de l’analyse des secrets » et « À propos de GitHub Advanced Security ».

Pour plus d’informations sur la façon dont vous pouvez essayer GitHub Advanced Security gratuitement, consultez « Configuration d’un essai de 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 par émission de données pour votre organisation ou votre référentiel, secret scanning vérifie également les envois 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 « Modèles d'analyse des secrets ».

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.

Les propriétaires d’organisation peuvent fournir un lien personnalisé qui sera inclus dans le message de GitHub Enterprise Cloud lorsque votre poussée est bloquée. Ce lien personnalisé peut contenir des ressources et des conseils spécifiques à votre organisation et à ses stratégies.

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 boîte de dialogue avec des informations sur l’emplacement du secret, ainsi que des options vous permettant d’envoyer (push) le secret. Le secret sera également souligné dans le fichier afin que vous puissiez le trouver facilement.

Pour résoudre une validation bloquée dans l’interface utilisateur web, vous devez supprimer le secret du fichier ou utiliser les options affichées dans la boîte de dialogue 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 des poussées pour les référentiels et les organisations ».

Si vous confirmez qu’un secret est réel, vous devez supprimer le secret du fichier. Une fois que vous avez supprimé le secret, vous pourrez valider vos modifications.