Me gustaría establecer el valor de github.token en mi ~ / .gitconfig para que sea el resultado de un command de shell. Actualmente tengo lo siguiente:
[github] user = zmanji token = !echo ~/.githubtoken 2> /dev/null
Sin embargo, git config github.token no devuelve el contenido del file ~ / .githubtoken, sino el command en sí. ¿Cómo puedo hacer que funcione como lo desea?
Editar: Para ser claros, estoy tratando de lograr lo que está implícito aquí :
También puede definir github.token como un command que devuelve el token real en stdout estableciendo la variable en una cadena de command con el prefijo
!
.
Parece que la trampa aquí es que no está configurando el token en la configuration de gitconfig. Él está usando la herramienta Hub de Defunkt . Este es un contenedor para el command git que, entre otras cosas, le permite tener variables de entorno GITHUB_USER
y GITHUB_TOKEN
. Que anulará la configuration en el file local .gitconfig
.
Luego, para hacerlo sin problemas, el usuario señalaba alias alias git=hub
en su configuration ZSH . Debería poder get un file local donde establezca sus variables de entorno e introduzca su repository en el mundo público con toda su información privada intacta.
** NOTA para usuarios homebrew en OSX, puede instalar la herramienta a través de brew install hub
.
En lugar de almacenar mi token GitHub en un file, lo .gitconfig
en mi llavero OS X y lo obtengo así (fragment de mi .gitconfig
):
[github] token = !security find-generic-password -gs \"GitHub API Token\" 2>&1 >/dev/null | awk '/password/ {print $2}' | tr -d \\\"
Por lo que puedo inferir de la página man de git config , solo git config alias.*
Tiene la posibilidad de definir commands de shell.
Así que tal vez Defunkt estaba hablando de un alias llamado token
git config alias.token '!security 2>&1 >/dev/null find-generic-password -gs github.token | ruby -e 'print $1 if STDIN.gets =~ /^password: \\\"(.*)\\\"$/''
Se usaría para recuperar rápidamente el valor de su token de GitHub.
El valor de retorno se asignaría luego a github.token
través de un clásico git config github.token xxx
.