public async Task CanDeleteAReference() { var blob = new NewBlob { Content = "Hello World!", Encoding = EncodingType.Utf8 }; var blobResult = await _github.Git.Blob.Create(_context.RepositoryOwner, _context.RepositoryName, blob); var newTree = new NewTree(); newTree.Tree.Add(new NewTreeItem { Mode = FileMode.File, Type = TreeType.Blob, Path = "README.md", Sha = blobResult.Sha }); var treeResult = await _github.Git.Tree.Create(_context.RepositoryOwner, _context.RepositoryName, newTree); var newCommit = new NewCommit("This is a new commit", treeResult.Sha); var commitResult = await _github.Git.Commit.Create(_context.RepositoryOwner, _context.RepositoryName, newCommit); var newReference = new NewReference("heads/develop", commitResult.Sha); await _fixture.Create(_context.RepositoryOwner, _context.RepositoryName, newReference); await _fixture.Delete(_context.RepositoryOwner, _context.RepositoryName, "heads/develop"); var all = await _fixture.GetAll(_context.RepositoryOwner, _context.RepositoryName); Assert.Empty(all.Where(r => r.Ref == "heads/develop")); }
/// <summary> /// Deletes a reference for a given repository by reference name /// </summary> /// <remarks> /// http://developer.github.com/v3/git/refs/#delete-a-reference /// </remarks> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="reference">The canonical name of the reference without the 'refs/' prefix. e.g. "heads/master" or "tags/release-1"</param> /// <returns></returns> public IObservable <Unit> Delete(string owner, string name, string reference) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNullOrEmptyString(reference, nameof(reference)); return(_reference.Delete(owner, name, reference).ToObservable()); }