đŸ‡«đŸ‡· Oups ! J'ai pushĂ© l'API key sur le repo public GitHub...

En quoi est-ce un problÚme de push sa clé privée en public ?

Une API key privĂ©e permet aux fournisseurs de services de garantir que vous ĂȘtes bien l'utilisateur du service. S'il s'agit d'un service payant, d'autres utilisateurs du service peuvent utiliser vos requĂȘtes payĂ©es ou encore spammer le service en votre nom.

Pour éviter ça, vous pourrez utiliser des variables d'environnement (configurable directement via le dashboard de votre projet GitHub), ou encore les "Secret keys" de GitHub (une valeur par environnement par exemple).

Trop tard... vous avez pushé la clé !

Il ne suffit pas de retirer la clé du fichier, push un nouveau commit "remove key from source code" ; l'historique de commits sera toujours présent sur votre projet et on pourra lire et récupérer la clé.

Pour corriger cela, vous aller devoir ré-écrire l'historique de commits.

Imaginons que votre historique se présente ainsi :

commit ce1277a8674f4c9327b68a9854988f26f4c14262 (HEAD -> main, origin/main, origin/HEAD)
Author: gantoin <gantoin@pm.me>
Date:   Wed Nov 2 09:28:29 2022 +0100
   add API key
commit f45036f239a241a52dbb672012fb50a4e2f31054
Author: gantoin <gantoin@pm.me>
Date:   Tue Nov 1 12:57:57 2022 +0100
   fix parsing of array constructor

D'abord, j'efface en local le dernier commit "add API Key" :

git reset --hard HEAD^

Le systÚme de reset soft/hard efface tout simplement le nombre de commit désirée en gardant localement les modification (soft mode) ou non (hard mode).

Vous devrez ensuite push avec force sur votre repo distant :

git push -f

Il se peut que votre branch master/main soit protégée et que vous devrez faire sauter cette protection dans les paramÚtre de projet GitHub/GitLab.

AprÚs un git log, voyez que votre historique a bien été "nettoyé" :

commit f45036f239a241a52dbb672012fb50a4e2f31054
Author: gantoin <gantoin@pm.me>
Date:   Tue Nov 1 12:57:57 2022 +0100
   fix parsing of array constructor

‍