Псевдоним github.token в ~ / .gitconfig для команды оболочки - PullRequest
6 голосов
/ 31 августа 2011

Я бы хотел установить значение github.token в моем ~ / .gitconfig как результат команды оболочки.В настоящее время у меня есть следующее:

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

Однако git config github.token возвращает не содержимое файла ~ / .githubtoken, а саму команду.Как я могу заставить это работать так, как нужно?

Редактировать: Просто чтобы быть ясно, я пытаюсь достичь того, что подразумевается здесь :

Вы можететакже определите github.token как команду, которая возвращает фактический токен на стандартный вывод путем установки переменной в командной строке с префиксом !.

Ответы [ 3 ]

2 голосов
/ 07 сентября 2011

Похоже, подвох в том, что он не устанавливает токен в настройке gitconfig.Он использует инструмент defunkt's hub .Это оболочка для команды git, которая, помимо прочего, позволяет вам иметь переменные окружения GITHUB_USER и GITHUB_TOKEN.Который переопределяет настройки в локальном файле .gitconfig.

Затем, чтобы сделать его бесшовным, пользователь, на которого вы указали псевдоним alias git=hub в его ZSH config Затем вы сможете найти локальный файл, в котором вы устанавливаете переменные среды, и перенести свой репозиторий в публичный мир со всей вашей личной информацией в такте.

** ПРИМЕЧАНИЕ для доморощенных пользователей в OSX вы можетеустановить инструмент через brew install hub.

2 голосов
/ 26 сентября 2011

Вместо того, чтобы хранить мой токен GitHub в файле, я сохраняю его в своей цепочке ключей OS X и получаю его так (фрагмент из моего .gitconfig):

[github]
  token = !security find-generic-password -gs \"GitHub API Token\" 2>&1 >/dev/null | awk '/password/ {print $2}' | tr -d \\\"
0 голосов
/ 31 августа 2011

Из того, что я могу сделать вывод из справочной страницы git config , только git config alias.* имеет возможность определять команды оболочки.

Так что, возможно, defunkt говорило псевдониме, называемом токеном

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.

...