2015-10-12 99 views
0

我想使用nodegit(一個npm包)克隆私有存儲庫。我跟着a guides for cloning private repository和設置選項克隆作如下,nodegit:使用GitHub API令牌克隆私有存儲庫令牌不起作用

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

與遠程託管服務通話時,錯誤憑證將導致nodegit重新嘗試請求。取決於您是在Windows還是Mac上,請求將無限期地重試,或者重試5次。

所以我猜你的OAuth證書是不正確的,nodegit連續重試請求。