簡體   English   中英

pygit2 clone_repository 需要身份驗證但沒有回調設置

[英]pygit2 clone_repository authentication required but no callback set

我正在嘗試使用 ssh 鏈接從 stash 克隆存儲庫。 我收到一條錯誤消息,提示需要身份驗證,這應該不需要用戶名和密碼。 我該如何解決這個錯誤?

from pygit2 import *
repo_name = "ssh://git@stash:TheProject"
clone_repository(self.repo_name, self.repo_dir, credentials=cred)

Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__ return self.func(*args)
File "rio_telem_tool.py", line 143, in build clone_repository(self.repo_name, self.repo_dir)
File "/usr/local/lib/python2.7/dist-packages/pygit2/__init__.py", line 265, in clone_repository check_error(err)
File "/usr/local/lib/python2.7/dist-packages/pygit2/errors.py", line 56, in check_error raise GitError(message)
GitError: authentication required but no callback set

這是一個老問題,但我最近有兩個問題需要解決:

  1. 如何給 pygit2 用戶名和 git 令牌以連接到 github
  2. 由於這是一個完全內部的應用程序,如何跳過阻止連接到 github 的證書檢查

兩者的解決方案都涉及子類化 pygit2.RemoteCallbacks 並像這樣調用它:

 pygit2.clone_repository(your_args, callbacks=self.MyRemoteCallBacks(user,token)

班上:

class MyRemoteCallbacks(pygit2.RemoteCallbacks):
        def __init__(self, user, token):
            self.user = user
            self.token = token
        def credentials(self, url, username_from_url, allowed_types):
            return pygit2.UserPass(self.user,self.token)
        def certificate_check(self, certificate, valid, host):
            return True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM