notes - github tags
¿Cómo empujar el código a Github ocultando las claves API? (4)
Quiero enviar algunos códigos a mi repositorio de GitHub. Estos códigos están en diferentes idiomas como Javascript
, Java
, Python
, etc. Algunos de esos códigos contienen alguna clave de API
privada que no quiero publicar.
¿Hay alguna forma de ocultarlo automáticamente.? ¿Debo eliminarlo de mi código manualmente?
Hay muchos proyectos que quiero impulsar a GitHub. Por lo tanto, la eliminación manual no es una buena opción.
Cada vez que tienes archivos con datos sensibles como
config.yml
NO DEBE comprometerlos en su repositorio. Te mostraré un ejemplo.
Supongamos que tiene un archivo yaml con algún nombre de usuario y contraseña:
# app/config/credentials.yml
credentials:
username: foo
password: bar
Si desea ocultar los valores foo
y de bar
, elimine este archivo de su repositorio, pero agregue solo un archivo de distribution
que apunte a mantener los campos de nombre de usuario y contraseña, pero sin valores reales:
# app/config/credentials.yml.dist
credentials:
username: ~
password: ~
Durante la instalación, puede obtener este archivo, copiando app/config/credentials.yml.dist
a app/config/credentials.yml
.
Además, recuerde agregar app/config/credentials.yml
a su archivo .gitignore
.
Es lo mismo para las teclas api:
# app/config/config.yml
config:
credentials:
username: foo
password: bar
api_stuffs:
api_foo: fooooo
api_secret: baaaaar
api_token: tooooken
Esto funciona para los archivos de configuración, y es un buen patrón que le ahorra cada vez que necesita compartir la estructura de una configuración pero no datos razonables. Archivos ini, configuraciones, etc.
Debería considerar usar archivos .env
y leer las claves de las variables de entorno. La forma de hacerlo depende del idioma y las herramientas que utilice (para node.js , php , etc.).
Puede excluir los archivos .env
de las confirmaciones agregando .env
a .gitignore
. También puede cargar un ejemplo de configuración .env.example
con datos ficticios o espacios en blanco para mostrar el esquema que requiere su aplicación.
Puede agregar variables de entorno en su servidor para ocultar sus claves API. Todos los lenguajes de programación populares tienen métodos predeterminados para acceder a las variables de entorno.
Tener su clave API en el código es probablemente una mala idea de todos modos. Significa que cualquier persona que quiera usar su código tendrá que editarlo y reconstruirlo.
La solución de libros de texto para tales casos de uso es mover las credenciales a algún archivo de configuración y agregar documentación clara en el archivo README.md
sobre cómo se estructura y ubicación del archivo de configuración. También puede agregar una entrada para él en su archivo gitignore
para evitar que usted (y cualquier otra persona) envíe su información privada a GitHub por error.