libgit2sharp remove remote branch

2019-02-25 04:06发布

问题:

I want to delete a branch locally and remote. My code:

using (var repository = new Repository(path))
{
    var remote = repository.Network.Remotes["origin"];
    var options = new PushOptions();
    var credentials = options.CredentialsProvider = GetUserCredentialsProvider();
    options.CredentialsProvider = credentials;
    string pushRefSpec = @"refs/heads/:{0}".FormatWith(branch);
    repository.Network.Push(remote, pushRefSpec);
    repository.Branches.Remove(repository.Branches[branch]);
}

But I get the 401 error ("Unauthorized"). And it's because of the presence of the ":" in the name of the branch.

But I read that they are necessary, because of they are like "--delete" in native git.

Thanks for any helps!

回答1:

This is failing with a 401 Unauthorized error because it is unauthorized. To fix this error, you just need to pass the options containing your credentials to the Push() method:

repository.Network.Push(remote, pushRefSpec, options)

That fixed this problem for me.