Repo público GitHub con información sensible?

Estoy desarrollando un script de Python, pero necesito include mi key pública y secreta de Twitter API para que funcione. Me gustaría hacer público mi proyecto, pero mantener la información confidencial en secreto usando Git y GitHub. Aunque dudo mucho de que esto sea posible, ¿hay alguna forma de bloquear esos datos en un repository público de GitHub?

Dividirlos en un file de configuration que no incluya, o replacelos por marcadores de position y no comprometer los valores reales, usando git add -p . La primera opción es mejor.

El file de configuration podría consistir en un file .py básico cnetworkingentials.py en el que defina las cnetworkingenciales privadas necesarias en la estructura que considere mejor. (un dictionary probablemente sería el más adecuado).

Puede usar la información sensible al importar la estructura en este file y acceder a los contenidos. A otros usuarios que usan el código que ha creado se les debe aconsejar que lo hagan también.

La ocultación de este contenido finalmente se realiza con su file .gitignore . En él, simplemente agrega el nombre de file para excluirlo de su carga en su repository.

No. En su lugar, carga la información secreta de un file y agrega ese file a .gitignore para que no forme parte del repository.

Puede almacenar su key de API y su secreto en un file de configuration, como config.py , luego agregar ese file a su file .gitignore , para que no se almacene en su repository.

Dentro de tu tienda config.py tu key y secreto:

api_key = "TWITTER_KEY"` api_secret = "TWITTER_SECRET"

Dentro de tu file python existente:

import config ... connection = twitter_connection(config.api_key, config.api_secret)

Agregue config.py a su file .gitignore :

config.py

Las keys API de Twitter generalmente se guardan en un file JSON. Por lo tanto, cuando cargue su repository, puede modificar el file .gitignore para ocultar los files .json. Lo que hace es no cargar esos files al repository de git.

Su otra opción obviamente es para repositorys privados que no serán la solución en este caso.

Puede echar un vistazo a blackbox para almacenar información sensible en su VCS (git / hg / p4 / svn).

Supongamos que tiene un repository VCS (es decir, un repository Git o Mercurial) y ciertos files contienen secretos como passwords o keys privadas SSL. A menudo las personas solo almacenan dichos files "y esperan que nadie los encuentre en el repository". Eso no es seguro.

Con BlackBox, esos files se almacenan encriptados usando GPG. El acceso al repository de VCS sin tener también las llaves GPG correctas hace que no tenga valor tener los files. Mientras mantenga sus keys GPG a salvo, no tiene que preocuparse de almacenar su repository de VCS en un server que no sea de confianza. ¡Caramba, incluso si confía en su server, ahora no tiene que confiar en las personas que hacen copys de security de ese server, o las personas que manejan las cintas de respaldo!