Как использовать gpg-agent для массового подписывания тегов git - PullRequest
4 голосов
/ 15 марта 2012

Мой вопрос касается команды gpg-agent , которая выполняет кэширование для ключей и парольных фраз gpg.

Я хочу знать, как использовать ее, чтобы можно было запускать несколько файлов git tag -s команды в скрипте без необходимости каждый раз вводить мою парольную фразу gpg.

Начальная версия моего скрипта выглядит примерно так:

git branch -r |grep origin |grep pattern | while read BRANCH;сделать TAG = basename $BRANCH;git tag -s -m "tag $ TAG release" "$ TAG" "$ BRANCH";готово;

У меня есть два варианта использования:

  1. У меня около 20 веток релиза, которые я хочу преобразовать в теги.
  2. У меня около 40 тегов выпуска, которые я хочу повторить, чтобы следовать новому соглашению об именах.

Я ищу командную строку для gpg-agent чтобы запустить, а затем команду gpg, которую мне нужно запустить, чтобы кэшировать мою парольную фразу, чтобы ее можно было использовать, когда я делаю тег git -s

1 Ответ

2 голосов
/ 22 апреля 2012

Это можно сделать, запустив gpg-agent перед запуском скрипта.Например:

$ eval $( gpg-agent --daemon )
$ for branch in $( git branch -r | grep PATTERN ); do
>   tag="$( basename $BRANCH )"
>   git tag -sm "tag $tag release" "$tag" "$branch"
> done

Вам будет предложено ввести пароль для первого знака (если gpg-agent уже не использовался до первого знака).Если вы используете описанный выше метод, обязательно завершите работу агента после завершения (например, pkill gpg-agent).

Более подробную информацию о запуске агента можно найти здесь: http://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html

...