Прикрепление к коммиту в Git нескольких цифровых подписей |
[исправить] |
В некоторых ситуациях может потребоваться добавить к уже существующему коммиту
дополнительные цифровые подписи. Например, отдельные подписи могут прикреплять
участники, занимавшиеся рецензированием кода, или ответственные за выпуск
релизов, подтверждая проверку в своей зоне ответственности.
Для добавления подписей можно использовать интерфейс git-notes, позволяющий
прикреплять произвольные данные к существующим коммитам.
Добавление подписи:
git rev-parse HEAD | gpg --sign | base64 -w0 | \
git notes --ref refs/signatures append --file=-
git push origin refs/signatures
Верификация подписи:
git fetch origin refs/signatures
git notes merge -s cat_sort_uniq origin/refs/signatures
git notes --ref refs/signatures show | \
xargs -L1 -I {} sh -c "echo {} | base64 -d | gpg -d"
Для упрощения вышеописанных действий в рамках проекта git-signatures
подготовлено дополнение к git, позволяющее привязывать к коммиту или тегу сразу
несколько цифровых подписей. Код дополнения написан на bash и требует для своей
работы только Git и GnuPG.
Получение и объединение подписей из внешнего репозитория:
git signatures pull
Добавление новой подписи для тега:
git signatures add v1.0.0
Передача добавленных локально подписей во внешний репозиторий:
git signatures push
Выполнение всех вышеописанных действий одним шагом (pull/merge/sign/push):
git signatures add --push v1.0.0
Оценка цифровых подписей для тега (вывод всех идентификаторов открытых ключей):
git signatures verify v1.0.0
Проверка мультиподписи (m-of-n) (проверка всех подписей в одном GPG trustdb,
если 0 - то проверка прошла успешно):
git signatures verify --min-count 2 v1.0.0
Проверка мультиподписей в разных GPG trustdb;
git signatures verify --trustdb dev-team.db --min-count 2 v1.0.0
git signatures verify --trustdb release-team.db --min-count 1 v1.0.0
|
|
|
25.02.2019
|
Раздел: Корень / Программисту и web-разработчику / Системы контроля версий и управления исходными текстами |