Как настроить git для PGP подписывать мои теги по умолчанию (не мои коммиты) - PullRequest
0 голосов
/ 04 сентября 2018

В настоящее время у меня есть следующее ~/.gitconfig:

[gpg]
    program = /usr/local/bin/krgpg
[commit]
    gpgSign = true
[tag]
    forceSignAnnotated = true

Для коммита требуется, чтобы я подписал с использованием PGP:

git commit -m "Add package.json"
Krypton ▶ Requesting git commit signature from phone

Однако я хочу подписать только свои теги и пропустить фиксацию подписи.

Вопрос: есть ли способ настроить git для подписи только моих тегов

Я имею в виду, если не считать псевдонимов:

$ git alias.tag 'tag -s'

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

С Git 2.23 (Q3 2019) у вас теперь есть новая переменная конфигурации tag.gpgSign, которая превращает "git tag -a" в "git tag -s"!

См. коммит 1c6b565 (05 июня 2019 г.) от Тигран Мкртчян (tigran1999) .
(Объединено Junio ​​C Hamano - gitster - в коммит 492d7a5 , 09 июля 2019 г.)

tag: добавьте tag.gpgSign параметр конфигурации, чтобы все теги были подписаны GPG

Поскольку многие инструменты CI / CD не позволяют управлять параметрами командной строки, когда выполнение команды git tag, значение по умолчанию в файле конфигурации позволит принудительно подписывать теги, если требуется.

Новая опция файла конфигурации tag.gpgSign добавлена ​​для определения поведения по умолчанию подписей тегов.
Чтобы переопределить поведение по умолчанию, можно использовать параметр командной строки -s, --sign и --no-sign:

$ git tag -m "commit message"

сгенерирует тег со знаком GPG, если опция tag.gpgSign имеет значение true, а

$ git tag --no-sign -m "commit message"

пропустит шаг подписи.

git config для тега теперь включает в себя:

tag.gpgSign

Логическое значение, указывающее, все ли теги должны быть подписаны GPG.

Использование этой опции при запуске в автоматическом скрипте может привести к подписанию большого количества тегов.
Поэтому удобно использовать агент, чтобы не вводить парольную фразу gpg несколько раз.

Обратите внимание, что этот параметр не влияет на поведение подписи тегов, включаемое опциями "-u <keyid>" или "--local-user=<keyid>".

0 голосов
/ 15 октября 2018

Полагаю, этот вопрос остался без ответа достаточно долго, чтобы оправдать мой обходной путь как единственный ответ. Просто установите псевдоним git:

git alias.tag 'tag -s'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...