Comment faire pour pousser le code à Github cachant les keys API?

Je veux pousser du code vers GitHub. Il contient une key API privée que je ne veux pas publier. Est-il possible de le cacher automatiquement? Dois-je le retirer de mon code manuellement?

Solutions Collecting From Web of "Comment faire pour pousser le code à Github cachant les keys API?"

Vous devriez envisager d'utiliser des files .env et lire les keys à partir des variables d'environnement. Comment le faire dépend de la langue et des outils que vous utilisez (pour node.js , php , etc.).

Vous pouvez exclure le file .env des .env en ajoutant .env au .gitignore . Vous pouvez également download un exemple de configuration .env.example avec des données fictives ou des espaces pour afficher le schéma .env.example par votre application.

Avoir votre key API dans le code est probablement une mauvaise idée de toute façon. Cela signifie que toute personne qui veut utiliser votre code devra éditer le code et le rebuild.

La solution de manuels pour de telles utilisations est de déplacer les informations d'identification vers un file de configuration et d'append une documentation claire dans le file README.md sur la structure et l'location du file de configuration. Vous pouvez également append une input dans votre file gitignore pour empêcher vous (et toute autre personne) de pousser vos informations privées vers GitHub par erreur.

Vous pouvez append des variables d'environnement dans votre server pour masquer vos keys API. Tous les langages de programmation courants ont des methods par défaut pour accéder aux variables d'environnement.

Chaque fois que vous avez des files avec des données sensibles comme

 config.yml 

vous NE DEVEZ PAS les valider dans votre repository. Je vais vous montrer un exemple.

Supposons que vous ayez un file yaml avec un nom d'user et un mot de passe:

 # app/config/credentials.yml credentials: username: foo password: bar 

Si vous souhaitez masquer les bar values, remove this file from your repository, but add just a foo et de bar values, remove this file from your repository, but add just a file de dissortingbution qui vise à conserver les champs de nom d'user et de mot de passe, mais sans valeurs réelles:

 # app/config/credentials.yml.dist credentials: username: ~ password: ~ 

Pendant l'installation, vous pouvez get ce file en copiant app/config/credentials.yml.dist dans app/config/credentials.yml .

N'oubliez pas d'append app/config/credentials.yml à votre file .gitignore .

C'est la même chose pour les keys api:

 # app/config/config.yml config: credentials: username: foo password: bar api_stuffs: api_foo: fooooo api_secret: baaaaar api_token: tooooken 

Cela fonctionne pour les files de configuration et est un bon motif qui vous sauve chaque fois que vous avez besoin de partager la structure d'une configuration mais pas de données sensibles. Fichiers Ini, configurations et ainsi de suite.