В командной строке я сгенерировал новую пару ключей, используя пакет github-api-signature generateKeyPair
, предоставляя имя и адрес электронной почты моей учетной записи GitHub, а также случайную парольную фразу.
Я взял общедоступную часть сгенерированной пары ключей и поместил ее в свой аккаунт GitHub на странице ключей.
Я взял закрытый ключ и предоставил его фрагменту кода ниже.
Запрос на создание коммита возвращается успешно, как и программное создание PR, но когда я захожу на страницу коммитов PR, появляется окно с надписью «Непроверено» с сообщением «Подпись в этом коммите не может быть проверена. Кто-то возможно, пытается вас обмануть».
Я сравнил идентификатор ключа GPG, который он предоставляет мне на этой странице, с теми, которые перечислены на моей странице ключей GitHub, и он совпадает, так почему же мой коммит отображается как непроверенный?
Пример кода:
const privateKey = '[GENERATED PRIVATE KEY]';
const passphrase = '[RANDOM PASSPHRASE FROM EARLIER]';
const author = {
name: '[NAME THAT MATCHES GITHUB]',
email: '[EMAIL THAT MATCHES GITHUB]',
date: new Date().toISOString(),
};
const commitPayload: CommitPayload = {
message: commitMessage,
author,
committer: { ...author },
tree: tree.data.sha,
parents: [branch.data.object.sha],
};
const signature = await githubApiSignature.createSignature(
commitPayload,
privateKey,
passphrase,
);
const result = await got(
`[GITHUB API URL]/repos/[USERNAME]/[REPO_NAME]/git/commits`,
{
protocol: 'https:',
method: 'POST',
body: {
...commitPayload,
signature,
},
json: true
},
);
git verify-commit HASH
? - person bk2204   schedule 03.06.2020gpg: BAD signature from "Name <email>" [unknown]
, что интересно, ключ RSA также намного короче (16 против 40 символов) для этой подписи по сравнению с той, которая была успешно создана с помощью непрограммно созданной фиксации с использованием другого ключа несколько дней назад. - person Tom   schedule 03.06.2020