如何在pygit2上禁用ssl验证

时间:2016-04-26 02:55:50

标签: python git libgit2 pygit2

我正在使用pygit2以编程方式克隆来自内部服务器的repo,该服务器包含自签名证书。 pygit2会在证书上引发错误,如何关闭验证?

1 个答案:

答案 0 :(得分:0)

由于pygit2/remote.py#L170-L175

,检查已完成
private void addMarkersToMap() {
    mMap.clear();
    for (int i = 0; i < private void addMarkersToMap() {
mMap.clear();
for (int i = 0; i < location.size(); i++) {         
        LatLng ll = new LatLng(location.get(i).getPos().getLat(), location.get(i).getPos().getLon());
        BitmapDescriptor bitmapMarker;
        switch (location.get(i).getState()) {
        case 0:
            bitmapMarker = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED);
            Log.i(TAG, "RED");
            break;
        case 1:
            bitmapMarker = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN);
            Log.i(TAG, "GREEN");
            break;
        case 2:
            bitmapMarker = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE);
            Log.i(TAG, "ORANGE");
            break;
        default:
            bitmapMarker = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED);
            Log.i(TAG, "DEFAULT");
            break;
        }               
        mMarkers.add(mMap.addMarker(new MarkerOptions().position(ll).title(location.get(i).getName())
                .snippet(getStateString(location.get(i).getState())).icon(bitmapMarker)));

        Log.i(TAG,"Car number "+i+"  was added " +mMarkers.get(mMarkers.size()-1).getId());
    }
}

作为in this question,您可以覆盖callback function with your owngit_fetch_options struct(无效)。

def _fill_fetch_options(self, fetch_opts):
    fetch_opts.callbacks.certificate_check = self._certificate_cb

这种方法在OP's own issue on pygit2

中得到了回应和确认
  

您不能告诉pygit2 / libgit2忽略所有内容,但您可以提供自己的证书验证功能作为回调。
  如果将git_fetch_options options = GIT_FETCH_OPTIONS_VERSION; options.git_remote_callbacks.certificate_check = my_own_cred_acquire_cb; 设置为您编写的某个函数,则可以忽略已知错误主机的证书。