在 git2-rs 中,克隆时如何进行身份验证?

In git2-rs, how do I authenticate when cloning?

如何将身份验证回调传递给 git2::Repository::clone()? (set_remote_callbacks 设置回调)。

我有如下代码:

let mut cb = git2::RemoteCallbacks::new();
Self::set_remote_callbacks(&mut cb);
let rr = Repository::clone(url, path.to_str().ok_or("bad string".to_string())?);

我想要的是,例如,当我获取时,我会这样做,这会将我的回调传递给 fetch:

let mut fetchOptions = FetchOptions::new();
let mut cb = git2::RemoteCallbacks::new();
Self::set_remote_callbacks(&mut cb);
fetchOptions.remote_callbacks(cb);
let mut remote = self.repo.find_remote(remote)?;
remote.fetch(&[branch], Some(&mut fetchOptions), None)?;

使用git2::build::RepoBuilder.

归功于 issue 329 on the git2 issue tracker