1

我想使用 npm 包 nodegit 克隆一个私有存储库。我遵循了克隆私有存储库的指南并将克隆选项设置为流,

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.userpassPlaintextNewcredentials()则只调用一次(这是预期的行为)并且存储库被克隆。

谁能给我一些关于我的代码有什么问题的提示?

4

1 回答 1

0

在与远程托管服务通信时,错误的凭据将导致 nodegit 重新尝试您的请求。根据您使用的是 Windows 还是 Mac,该请求将无限期重试或重试 5 次。

所以我猜你的 OAuth 凭据不正确,nodegit 正在不断地重试请求。

于 2015-10-30T15:54:21.467 回答