Passer au contenu
GitTree
Modifications et commits

Examinez les secrets possibles avant de valider

Avant un commit ou un push, GitTree peut afficher Possible secrets in this commit ou Possible secrets in this push. L'analyse est locale et délimitée. Vous pouvez Unstage File, Add to .gitignore, Commit Anyway ou Push Anyway. Un avertissement ne prouve pas qu'un secret est présent, et le silence ne prouve pas qu'on est absent.

GratuitMis à jour

Fonctionne dans GitTree Gratuit : toutes les fonctionnalités Git locales, sans compte requis.

Sur cette page
  1. Avant de commencer
  2. Où le trouver
  3. Mesures
  4. Résultat attendu
  5. Ce que l'analyse ne couvre pas
  6. Ignorer les règles et les fichiers préparés
  7. Autoriser volontairement une ligne
  8. Si quelque chose ne va pas
  9. Questions
  10. En rapport

Avant de commencer

  • Les avertissements secrets font partie du plan gratuit. Ils sont allumés lorsque Local secret warnings est Warn before proceeding.
  • L'analyse lit le contenu préparé pour une validation et une plage de validation sortante prise en charge pour une transmission. Il n'envoie pas le contenu du fichier à GitTree.

Où le trouver

  • L'avertissement s'ouvre à partir de la boîte de validation lorsque vous effectuez une validation, ou à partir du flux push lorsque vous effectuez une transmission.
  • Preferences, le paramètre Local secret warnings : Warn before proceeding ou Off.
ActionmacOSWindows et Linux
Valider⌘EnterCtrl+Enter
Préférences⌘,Ctrl+,

Mesures

  1. Validez ou poussez comme d'habitude

    Indexez les fichiers et rédigez le message, ou démarrez le push. Si l'analyse trouve un secret probable, GitTree s'arrête et ouvre la boîte de dialogue au lieu de terminer. Votre message et vos fichiers de travail sont conservés lorsque la boîte de dialogue est celle de validation. La boîte de dialogue push indique que la correction d'un secret déjà validé nécessite une nouvelle validation ou une réécriture.

    La boîte de validation avec un champ de message, des options et la ligne hooks
    L'avertissement de validation s'ouvre à partir de cette boîte. L'affiche toujours le compositeur, pas la boîte de dialogue d'avertissement.Interface GitTree avec un référentiel de démonstration.
  2. Lire l'avertissement

    Le titre est Possible secrets in this commit ou Possible secrets in this push. Chaque ligne nomme une règle, telle que Private key, AWS access key, GitHub token, GitLab token, Slack token, Stripe live key, Google API key ou Sensitive file name, et un numéro de ligne lorsqu'elle en a un. Les jetons sont masqués. Une clé privée est affichée sous la forme Private key header.

  3. Gardez le secret hors du commit

    Unstage File supprime ce fichier de l'index. Add to .gitignore ajoute une règle d'ignorance. La boîte de dialogue indique que les règles d'ignorance ne suppriment pas le contenu intermédiaire, donc supprimez également le fichier intermédiaire. Pour autoriser volontairement une ligne, ajoutez gittree:allow-secret sur cette ligne. Cela arrête l'avertissement pour la ligne. Cela ne crypte rien.

  4. Continuez seulement si vous le souhaitez

    Commit Anyway ou Push Anyway continue. Cancel vous ramène à la boîte de validation ou au push sans partage. Si certaines modifications n'ont pas été inspectées, la boîte de dialogue l'indique. Traitez cela comme une analyse incomplète et non comme un résultat net.

Résultat attendu

Soit le secret n'est plus indexés, soit vous avez choisi de continuer après avoir lu l'avertissement. Vérifiez la différence du prochain commit avant de pousser. Une règle .gitignore ne réécrit pas un commit qui contient déjà le fichier.

Ce que l'analyse ne couvre pas

Local secret warnings indique que l'inspection reste locale et limitée, et que vous avez le choix de la désactiver pour l'ensemble de l'application. Les écarts qu'il peut signaler sont The inspection limit was reached, Binary content was skipped, Lines longer than 4 KiB were skipped et Some content could not be inspected. The optional secret scan was unavailable signifie que vous devez vérifier le contenu vous-même.

Pourquoi un secret peut être manqué
ÉcartCe qu'il faut faire
Le contenu binaire a été ignoréOuvrez le fichier vous-même. Le scan ne le lit pas.
Les lignes de plus de 4 Ko ont été ignoréesRecherchez cette ligne dans un éditeur. Un jeton sur une ligne minifiée n'est pas analysé.
La limite d'inspection a été atteinteValidez un plus petit ensemble de fichiers et lisez le reste.
Le paramètre est désactivéRien n'est analysé jusqu'à ce que vous choisissiez Avertir avant de continuer.

Ignorer les règles et les fichiers préparés

La boîte de dialogue indique que Ignore rules do not remove staged content. Unstage the file as well. git check-ignore peut montrer qu'un chemin correspond à .gitignore tandis que git diff --cached l'affiche toujours dans l'index. Supprimez-le, puis validez. L'ajout d'une règle ne supprime pas le fichier des validations déjà existantes.

git diff --cached -- path/to/file
git restore --staged -- path/to/file
git check-ignore -v path/to/file

Si le secret est déjà sur le dépôt distant, modifier .gitignore ne suffit pas. Vous avez besoin d'un nouveau commit qui le supprime et d'une réécriture de l'historique si les anciens commits ne doivent pas le contenir. GitTree ne promet pas d'effacer un secret de chaque clone. Voir ignore files et hooks si vous souhaitez également qu'un hook refuse la validation.

Autoriser volontairement une ligne

Add gittree:allow-secret on a line to stop warning about it. Placez ce marqueur sur la ligne qui doit être validée, par exemple un jeton d'appareil qui n'est pas un véritable identifiant. Le marqueur est visible dans le fichier. Ne l'utilisez pas pour masquer une clé active. Commit Anyway valide sans ajouter le marqueur.

Les avertissements push examinent les commits que vous êtes sur le point d'envoyer. Possible secrets in this push ne peut pas supprimer un fichier déjà dans une validation. Corrigez-le avec un nouveau commit ou réécrivez l'historique non publié, puis repoussez. Forcer le push avec le bail est le push de réécriture sécurisé lorsque la branche n'est pas publiée. Le tutoriel couvre les commits quotidiens avant que vous ayez besoin de cette boîte de dialogue.

Si quelque chose ne va pas

"Les secrets potentiels nécessitent votre examen avant de continuer."

Le commit ou le push est en attente dans la boîte de dialogue. Annulez la indexation, ignorez, autorisez la ligne ou choisissez Valider quand même ou Pousser quand même. Annuler laisse le message et les fichiers de travail en place pour une validation.

"Les règles d'ignorance ne suppriment pas le contenu intermédiaire. Supprimez également le fichier. "

Ajouter à .gitignore met uniquement à jour le fichier ignorer. Appuyez sur Unstage File ou exécutez git restaurer --staged pour que la prochaine validation n'inclue pas le chemin.

"Certains changements n'ont pas été inspectés."

L'analyse s'est arrêtée prématurément, a sauté un binaire ou a sauté une ligne de plus de 4 Ko. Lisez ces fichiers vous-même avant de continuer.

"L'analyse secrète facultative n'était pas disponible. Vérifiez le contenu vous-même."

GitTree n'a pas pu exécuter l'analyse. Le commit n'est pas certifié propre. Lisez la différence, puis validez-la uniquement si vous l'avez vérifiée.

Questions

Est-ce que GitTree télécharge mes fichiers pour rechercher des secrets ?

Non. Le paramètre indique que l’inspection reste locale et limitée. La boîte de dialogue examine ce que vous êtes sur le point de valider ou de pousser sur cet ordinateur.

Un dialogue clair est-il la preuve qu’il n’y a pas de secret ?

Non. Le contenu binaire et les lignes de plus de 4 Ko sont ignorés, l'inspection peut atteindre une limite et les modèles ne correspondent pas à tous les secrets. Un avertissement n’est pas non plus une garantie.

.gitignore supprime-t-il un secret que j'ai déjà indexé ?

Non. Les règles d’ignorance ne suppriment pas le contenu intermédiaire. Supprimez également le fichier. Une règle ne réécrit pas non plus les anciens commits.

Que fait gittree:allow-secret ?

Sur une ligne, il arrête l'avertissement pour cette ligne. La ligne est toujours validée sous forme de texte. Utilisez-le uniquement pour une valeur que vous avez l'intention de partager.

Puis-je désactiver les avertissements ?

Oui. Préférences › Avertissements secrets locaux › Désactivé. Il s'agit d'un choix à l'échelle de l'application. L'analyse ne s'exécute pas tant que vous n'avez pas défini Avertir avant de recommencer.