Skip to content

Instantly share code, notes, and snippets.

@Zodt
Last active March 7, 2024 20:05
Show Gist options
  • Save Zodt/61beb3dabb84184de0455d047a90752b to your computer and use it in GitHub Desktop.
Save Zodt/61beb3dabb84184de0455d047a90752b to your computer and use it in GitHub Desktop.
Получение бейджика Verified для GitHub коммитов

[WINDOWS] Получение бейджика Verified для GitHub коммитов

Это пошаговое руководство о том, как включить автоматическое подписание Git-коммитов с помощью GPG для всех приложений, которые не поддерживают его изначально (например: GitHub Desktop, JetBrains Rider, ...)

Требования

  • Установите GPG4Win: это программное обеспечение представляет собой пакет с последней версией GnuPG v2, Kleopatra v3 Certificate manager, GNU Privacy Assistant (GPA) v0.9, который представляет собой графический интерфейс, использующий GTK+, GpgOL и GpgEX, которые соответственно являются расширением для MS Outlook и расширением для оболочки проводника Windows
  • Установите Git for Windows: это программное обеспечение представляет собой пакет с последней версией git и расширение оболочки Проводника Windows (убедитесь, что ваша локальная версия Git-это, как минимум, 2.0, иначе Git не поддерживает автоматический вход в ваши коммиты)
  • Откройте PowerShell и проверьте, был ли Git успешно установлен с помощью команды git --version:
    git --version
    -> git version 2.15.1.windows.2

Помните, что Git for Windows устанавливает старую версию GnuPG 1.4.xx (предоставляемую через среду MINGW), но это не имеет значения, так как мы собираемся вручную указать, какую программу GnuPG должен использовать наш Git (а именно версию GnuPG, установленную GPG4Win)

Установка

  • Проверка наличия GPG: Откройте PowerShell и введите команду gpg --help.

    • Если PowerShell бьёт ошибку:
      • Добавьте путь к директории в которую был установлен GPG4Win (например: "C:\Program Files (x86)\GnuPG\bin\gpg.exe") в переменные среды Windows:
        • Откройте Пуск -> Параметры -> Система -> О системе -> Дополнительные параметры системы -> Дополнительно -> Переменные среды.
        • Выбирите переменную PATH и нажмите Изменить.
        • В конец списка добавте Ваш путь.
        • Перезагрузите машину.
  • Генерация ключа: в PowerShell необходимо прописать команду gpg --default-new-key-algo rsa4096 --gen-key чтобы вывести список GPG-ключей, к которым у вас есть как открытый, так и закрытый ключ в длинной форме.
    Закрытый ключ необходим для подписи коммитов или тегов.
    (Для более подробного описания команды перейдите сюда)

    gpg --list-secret-keys --keyid-format LONG
    C:/Users/johnSmith/AppData/Roaming/gnupg/pubring.kbx
    ----------------------------------
    sec   4096R/E870EE00B5D90537 2017-12-31 [expires: 2021-12-31]
    uid                          John Smith <john.smith@gmail.com>
    ssb   4096R/F9E3E72EBBFDCFD6 2017-12-31
    
  • Создайте сертификат отзыва: эта команда создает файл .rev, необходимый для отзыва открытого ключа, совместно используемого на сервере ключей.

    gpg --gen-revoke E870EE00B5D90537
  • Отправьте открытый ключ: эта команда никогда не отправит закрытый ключ

    gpg --send-keys E870EE00B5D90537
  • Экспорт открытого ключа: эта команда выдаёт сертификат открытого ключа

    gpg --export -a "john.smith@gmail.com"
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    
    QwedWRdscg2708952n66oFicp4gRGld6jwXREbGRybnYNPy5nVw2IZleWx2HzEkv
    sXTSv9xGzNZO+ISkGCw767i7YNuuowDN14vfFdgvWKD1vRQJ7avv2+zYFU7iwL0/
                                ...
    H4V2mPy20msrmbRsiQQiwjvSKlIunH+7RXmjcmg=
    =V8Bi
    -----END PGP PUBLIC KEY BLOCK-----
    
  • Добавьте открытый ключ GPG в GitHub: Перейдите на эту страницу и выберите "New GPG key", а затем вставьте свой открытый ключ и нажмите кнопку "Add GPG key"

  • Настройка Git для автоматической подписи всех коммитов: это изменение вашей глобальной конфигурации Git, если вы хотите добавить автоматический вход в один репозиторий, удалите --global из команды.

    git config --global user.signingkey E870EE00B5D90537
    git config --global commit.gpgsign true
  • Настройка Git для использования пользовательской программы GPG:

    git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
  • Настройка глобальной конфигурации Git

    git config --edit --global

    Откроется окно текстового редактора. Необходимо в начале файла добавить/заменить текущий, если есть, атрибут [user].

    [user]
      name = John Smith
      email = john.smith@gmail.com
      signingkey = E870EE00B5D90537

    Так же необходимо удостовериться в наличии атрибутов [commit] и [gpg]

    ...
    [commit]
      gpgsign = true
    [gpg]
      program = C:\\Program Files (x86)\\GnuPG\\bin\\gpg.exe
    ...

    Опционально

    Так же в конец файла можете добавить

    [core]
         editor = \"Path\\To\\Your\\Favorite\\Text\\Editor\" --wait

Использование

Просто нажмите кнопку "Commit" на вашей любимой IDE, вы увидите простое окно, которое спросит ваш пароль ключа.

Помните, что GPG4Win устанавливает также агент GPG, который запоминает ваш пароль в течение ограниченного времени (около 30 минут) по умолчанию, поэтому вам не нужно вводить пароль каждый раз при комите.

Вот и все!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment