我想使用nodegit(一个npm包)克隆一个私有存储库。我跟着a guides for cloning private repository并将克隆选项设置为fllows,
cloneOptions:
remoteCallbacks:
certificateCheck: ()-> return 1
credentials: ()->
return NodeGit.Cred.userpassPlaintextNew(GITHUB_TOKEN, "x-oauth-basic")
但我收到了一条错误消息"authentication required but no callback set"
。因此,我查看了nodegit
的一些相关源代码,并按如下方式设置cloneOptions
,
cloneOptions =
fetchOpts:
callbacks:
certificateCheck: ()-> return 1 # For OS X issue with GitHub certificate
credentials: ()->
cred = NodeGit.Cred.userpassPlaintextNew(GITHUB_TOKEN, "x-auth-basic")
return cred
此代码的行为有点奇怪,因为它似乎克隆了存储库,但重复调用cloneOpts.fetchOpts.callbacks.credential()
并且程序不会停止运行。
如果我改为使用用户名和密码作为git.Cred.userpassPlaintextNew
的参数,则credentials()
只被调用一次(这是预期的行为)并且克隆了存储库。
有人能给我一些关于我的代码有什么问题的提示吗?
答案 0 :(得分:0)
与远程托管服务交谈时,错误的凭据将导致nodegit重新尝试您的请求。根据您是在Windows或Mac上,请求将无限期重试,否则将重试5次。
所以我猜你的OAuth凭证不正确,而且nodegit正在不断重试请求。