在命令行上,我使用github-api-signature 包的 generateKeyPair
功能生成了一个新的密钥对,提供了我的 GitHub 帐户的名称和电子邮件以及一个随机密码。
我将生成的密钥对的公共部分放入我的 GitHub 帐户中的密钥页面。
我拿了私钥并将其提供给下面的代码片段。
创建提交的请求与 PR 的编程创建一样成功返回,但是当我访问 PR 的提交页面时,有一个框显示“未验证”,并显示消息“无法验证此提交中的签名。有人可能是想骗你。”
我将它在此页面上提供给我的 GPG 密钥 ID 与我的 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
},
);