¿Cómo presionar el código a Github ocultando las keys API?

Quiero enviar algún código a GitHub. Contiene una key de API privada que no quiero publicar. ¿Hay alguna forma de ocultarlo automáticamente? ¿Debo eliminarlo de mi código manualmente?

Debería considerar usar files .env y leer las keys de las variables de entorno. Cómo hacerlo depende del idioma y las herramientas que utilice (para node.js , php , etc.).

Puede excluir el file .env de commits agregando .env al .gitignore . También puede cargar un ejemplo de configuration .env.example con datos ficticios o espacios en blanco para mostrar el esquema que requiere su aplicación.

Tener su key API en el código es probablemente una mala idea de todos modos. Significa que cualquier otra persona que quiera usar su código tendrá que editar el código y rebuildlo.

La solución de libros de text para tales usos es mover las cnetworkingenciales a algún file de configuration, y agregar documentation clara en el file README.md sobre cómo la estructura y location del file de configuration. También puede agregar una input en su file de gitignore para evitar que usted (y cualquier otra persona) envíe su información privada a GitHub por error.

Puede agregar variables de entorno en su server para ocultar sus keys API. Todos los lenguajes de progtwigción populares tienen methods pnetworkingeterminados para acceder a las variables de entorno.

Cada vez que tenga files con datos sensibles como

 config.yml 

NO DEBES comprometerlos en tu repository. Te mostraré un ejemplo.

Supongamos que tiene un file yaml con algún nombre de usuario y contraseña:

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

Si desea ocultar los bar values, remove this file from your repository, but add just a foo y bar values, remove this file from your repository, but add just a file de distribución que bar values, remove this file from your repository, but add just a objective mantener los campos de nombre de usuario y contraseña, pero sin valores reales:

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

Durante la installation, puede get este file, copyndo app/config/cnetworkingentials.yml.dist en app/config/cnetworkingentials.yml .

Además, recuerde agregar app/config/cnetworkingentials.yml a su file .gitignore .

Es lo mismo para las teclas api:

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

Esto funciona para los files de configuration, y es un buen patrón que le ahorra cada vez que necesita compartir la estructura de una configuration, pero no los datos sensibles. Archivos Ini, configuraciones, etc.