我正在使用pygit2以编程方式克隆来自内部服务器的repo,该服务器包含自签名证书。 pygit2会在证书上引发错误,如何关闭验证?
答案 0 :(得分:0)
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 own的git_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;
设置为您编写的某个函数,则可以忽略已知错误主机的证书。