2015-10-12 1 views
0

Я хочу клонировать частный репозиторий, используя nodegit, пакет npm. Я последовал a guides for cloning private repository и установить параметры клон как fllows,nodegit: клонирование частного репозитория с использованием маркера API GitHub не работает

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 повторяет запрос непрерывно.