JGit: GPG для фиксации файлов без передачи ключевой фразы или использования консольного ввода? - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь использовать gpg для фиксации в git, у меня уже есть имя пользователя и токен, и он работает без парольной фразы с использованием ssh, но не для gpg!

Я сталкиваюсь с ошибкой ниже

org.bouncycastle.openpgp.PGPException: missing credentials provider
    at org.eclipse.jgit.lib.internal.BouncyCastleGpgKeyPassphrasePrompt.getPassphrase(BouncyCastleGpgKeyPassphrasePrompt.java:120)
    at org.eclipse.jgit.lib.internal.BouncyCastleGpgKeyLocator.findSecretKeyForKeyBoxPublicKey(BouncyCastleGpgKeyLocator.java:279)
    at org.eclipse.jgit.lib.internal.BouncyCastleGpgKeyLocator.findSecretKey(BouncyCastleGpgKeyLocator.java:244)
    at org.eclipse.jgit.lib.internal.BouncyCastleGpgSigner.locateSigningKey(BouncyCastleGpgSigner.java:120)
    at org.eclipse.jgit.lib.internal.BouncyCastleGpgSigner.sign(BouncyCastleGpgSigner.java:129)
    ... 33 common frames omitted

Я хочу понять эти вещи:

  1. Какие учетные данные / Конфигурация ожидается от jgit для использования GPG?
  2. Как мы можем отправить фразу-пароль и как сделатьВы уверены, что используется кэшированная парольная фраза gpg?

Я пробовал следующие вещи:

  1. Добавлены учетные данные для .netrc компьютера, имени пользователя и пароля
  2. Включеноcommand.setSign(true)
  3. Добавлен SigningKey command.setSigningKey("KEY")

У меня есть эти настройки:

.netrc

machine github.com
login <login>
password <personal_token>

.zshrc

# GPG
export GPG_TTY=`tty`

.gnupg/gpg-agent.conf

default-cache-ttl 28880
write-env-file /Users/[your user]/.gnupg/gpg-agent-info
pinentry-program /usr/local/MacGPG2/libexec/pinentry-mac.app/Contents/MacOS/pinentry-mac

gpg.conf

auto-key-retrieve
no-emit-version
default-key <key>
use-agent
no-tty
...