将〜/ .gitconfig中的github.token别名化为shell命令

时间:2011-08-31 00:40:17

标签: git bash github git-config

我想将〜/ .gitconfig中的github.token值设置为shell命令的结果。我目前有以下内容:

[github]
  user = zmanji
  token = !echo ~/.githubtoken 2> /dev/null

然而,git config github.token不返回〜/ .githubtoken文件的内容,而是返回命令本身。我怎样才能让它按照需要运作?

编辑:为了清楚起见,我正在努力实现隐含的内容here

  

您还可以将github.token定义为一个命令,该命令通过将变量设置为前缀为!的命令字符串来返回stdout上的实际令牌。

3 个答案:

答案 0 :(得分:2)

这里的问题似乎是他没有在gitconfig设置中设置令牌。他正在使用defunkt's hub tool。这是git命令的包装器,除其他外,它允许您拥有GITHUB_USERGITHUB_TOKEN环境变量。这将覆盖本地.gitconfig文件中的设置。

然后,在用户ZSH config中指向别名alias git=hub的用户无缝。然后,您应该能够在您设置环境变量的地方找到一个本地文件,并将您的存储库推送到公共世界,并提供所有私人信息。

**对于OSX上的自制用户,您可以通过brew install hub安装该工具。

答案 1 :(得分:2)

我没有将我的GitHub令牌存​​储在文件中,而是将其存储在我的OS X Keychain中,并将其设为这样(我的.gitconfig代码段):

[github]
  token = !security find-generic-password -gs \"GitHub API Token\" 2>&1 >/dev/null | awk '/password/ {print $2}' | tr -d \\\"

答案 2 :(得分:0)

git config man page我可以推断,只有git config alias.*可以定义shell命令。

所以也许defunkt正在谈论一个名为token

的别名
git config alias.token '!security 2>&1 >/dev/null find-generic-password -gs github.token | ruby -e 'print $1 if STDIN.gets =~ /^password: \\\"(.*)\\\"$/''

它将用于快速获取其GitHub令牌的值 然后,返回值将通过经典github.token分配给git config github.token xxx