编辑:我正在更改问题以适应我目前对已发生重大变化的问题的理解。
原标题: Nodegit 似乎在推送时要求输入错误的凭据
当尝试push
使用nodegit时,似乎在 Windows 上没有任何效果(虽然它们在 Linux 上运行良好)。
- 使用 SSH
sshKeyFromAgent
-验证错误:连接代理失败sshKeyNew
-credentials
回调是重复的(看起来像一个无限循环,但我不能确定)sshKeyMemoryNew
:credentials
被调用两次,然后节点退出,没有诊断(exit
和beforeExit
事件process
没有发出信号)
- 使用 HTTPS
userpassPlaintextNew
:[错误:未知证书检查失败] errno:-17
原始问题如下。
我正在尝试解决nodegit
,push
以下问题似乎解决了这种情况。但是我无法让它工作。
我已经使用 SSH 克隆了一个存储库,当我尝试推送时,我的credentials
回调是用用户git而不是motti(这是实际的 git 用户)调用的。
try {
const remote = await repository.getRemote("origin");
await remote.push(["refs/head/master:refs/heads/master"], {
callbacks: {
credentials: (url, user) => {
console.log(`Push asked for credentials for '${user}' on ${url}`);
return git.Cred.sshKeyFromAgent(user);
}
}
});
}
catch(err) {
console.log("Error:", err);
}
我得到以下输出:
Push 在 git@github 上要求提供“git”的凭据。[已编辑] .net:motti/tmp.git
错误:{错误:错误身份验证:连接代理失败 errno:-1,errorFunction:'Remote.push'}
如果我尝试将motti硬编码到sshKeyFromAgent
函数中,错误将变为:
错误:{错误:用户名与先前的请求不匹配 errno:-1,errorFunction:'Remote.push'}
这是我第一次尝试以编程方式使用 git,所以我可能会遗漏一些基本的东西......
回答评论中的一些问题:
- 我在 Windows 10 上运行
- 节点 v8.9.4
- git 版本 2.15.0.windows.1
- 节点git版本0.24.1
- 运行节点的用户是我的主要用户,当我在命令行中使用 git 时它可以正常工作