Я не знаю, является ли это идеальным решением, но, похоже, это помогает:
private void DuplicateGitHubRepo()
{
var clonePath = Path.Combine(Path.GetTempPath(), "Temp-" + Guid.NewGuid() + ".git");
var co = new CloneOptions
{
CredentialsProvider = GetGitCredentials()
};
Repository.Clone(SourceProjectUrl+".git", clonePath, co);
using (var repo = new Repository(clonePath))
{
repo.Network.Remotes.Update("origin", x => x.Url = TargetProjectUrl);
var options = new PushOptions
{
CredentialsProvider = GetGitCredentials()
};
repo.Network.Push(repo.Network.Remotes["origin"],repo.Refs.Select(x=>x.CanonicalName),options);
}
}