Add DeleteBranchOnMerge option for repositories (#2268)

This commit is contained in:
Sam Cackett
2021-02-13 20:29:09 +00:00
committed by GitHub
parent 20549430e5
commit 46787d2cb8
4 changed files with 89 additions and 1 deletions

View File

@@ -219,6 +219,21 @@ public class RepositoriesClientTests
}
}
[IntegrationTest]
public async Task CreatesARepositoryWithDeleteBranchOnMergeEnabled()
{
var github = Helper.GetAuthenticatedClient();
var repoName = Helper.MakeNameWithTimestamp("repo-with-delete-branch-on-merge");
using (var context = await github.CreateRepositoryContext(new NewRepository(repoName) { DeleteBranchOnMerge = true }))
{
var createdRepository = context.Repository;
Assert.True(createdRepository.DeleteBranchOnMerge);
var repository = await github.Repository.Get(Helper.UserName, repoName);
Assert.True(repository.DeleteBranchOnMerge);
}
}
[IntegrationTest]
public async Task ThrowsInvalidGitIgnoreExceptionForInvalidTemplateNames()
@@ -613,6 +628,46 @@ public class RepositoriesClientTests
}
}
[IntegrationTest]
public async Task UpdatesDeleteBranchOnMergeMethod()
{
var github = Helper.GetAuthenticatedClient();
using (var context = await github.CreateRepositoryContext("public-repo"))
{
var updateRepository = new RepositoryUpdate(context.RepositoryName)
{
DeleteBranchOnMerge = true
};
var editedRepository = await github.Repository.Edit(context.RepositoryOwner, context.RepositoryName, updateRepository);
Assert.True(editedRepository.DeleteBranchOnMerge);
var repository = await github.Repository.Get(context.RepositoryOwner, context.RepositoryName);
Assert.True(repository.DeleteBranchOnMerge);
}
}
[IntegrationTest]
public async Task UpdatesDeleteBranchOnMergeMethodWithRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
using (var context = await github.CreateRepositoryContext("public-repo"))
{
var updateRepository = new RepositoryUpdate(context.RepositoryName)
{
DeleteBranchOnMerge = true
};
var editedRepository = await github.Repository.Edit(context.RepositoryId, updateRepository);
Assert.True(editedRepository.DeleteBranchOnMerge);
var repository = await github.Repository.Get(context.RepositoryId);
Assert.True(repository.DeleteBranchOnMerge);
}
}
public void Dispose()
{
Helper.DeleteRepo(Helper.GetAuthenticatedClient().Connection, _repository);
@@ -790,6 +845,32 @@ public class RepositoriesClientTests
Assert.Equal("mit", repository.License.Key);
Assert.Equal("MIT License", repository.License.Name);
}
[IntegrationTest]
public async Task ReturnsRepositoryDeleteBranchOnMergeOptions()
{
var github = Helper.GetAuthenticatedClient();
using (var context = await github.CreateRepositoryContext(Helper.MakeNameWithTimestamp("public-repo")))
{
var repository = await github.Repository.Get(context.RepositoryOwner, context.RepositoryName);
Assert.NotNull(repository.DeleteBranchOnMerge);
}
}
[IntegrationTest]
public async Task ReturnsRepositoryDeleteBranchOnMergeOptionsWithRepositoryId()
{
var github = Helper.GetAuthenticatedClient();
using (var context = await github.CreateRepositoryContext(Helper.MakeNameWithTimestamp("public-repo")))
{
var repository = await github.Repository.Get(context.RepositoryId);
Assert.NotNull(repository.DeleteBranchOnMerge);
}
}
}
public class TheGetAllPublicMethod

View File

@@ -82,6 +82,8 @@ namespace Octokit
/// </summary>
public int? TeamId { get; set; }
public bool? DeleteBranchOnMerge { get; set; }
internal string DebuggerDisplay
{
get

View File

@@ -78,6 +78,8 @@ namespace Octokit
/// </summary>
public bool? AllowMergeCommit { get; set; }
public bool? DeleteBranchOnMerge { get; set; }
/// <summary>
/// Optional. True to archive this repository. Note: you cannot unarchive repositories through the API.
/// </summary>

View File

@@ -14,7 +14,7 @@ namespace Octokit
Id = id;
}
public Repository(string url, string htmlUrl, string cloneUrl, string gitUrl, string sshUrl, string svnUrl, string mirrorUrl, long id, string nodeId, User owner, string name, string fullName, bool isTemplate, string description, string homepage, string language, bool @private, bool fork, int forksCount, int stargazersCount, string defaultBranch, int openIssuesCount, DateTimeOffset? pushedAt, DateTimeOffset createdAt, DateTimeOffset updatedAt, RepositoryPermissions permissions, Repository parent, Repository source, LicenseMetadata license, bool hasIssues, bool hasWiki, bool hasDownloads, bool hasPages, int subscribersCount, long size, bool? allowRebaseMerge, bool? allowSquashMerge, bool? allowMergeCommit, bool archived, int watchersCount)
public Repository(string url, string htmlUrl, string cloneUrl, string gitUrl, string sshUrl, string svnUrl, string mirrorUrl, long id, string nodeId, User owner, string name, string fullName, bool isTemplate, string description, string homepage, string language, bool @private, bool fork, int forksCount, int stargazersCount, string defaultBranch, int openIssuesCount, DateTimeOffset? pushedAt, DateTimeOffset createdAt, DateTimeOffset updatedAt, RepositoryPermissions permissions, Repository parent, Repository source, LicenseMetadata license, bool hasIssues, bool hasWiki, bool hasDownloads, bool hasPages, int subscribersCount, long size, bool? allowRebaseMerge, bool? allowSquashMerge, bool? allowMergeCommit, bool archived, int watchersCount, bool? deleteBranchOnMerge)
{
Url = url;
HtmlUrl = htmlUrl;
@@ -56,6 +56,7 @@ namespace Octokit
AllowMergeCommit = allowMergeCommit;
Archived = archived;
WatchersCount = watchersCount;
DeleteBranchOnMerge = deleteBranchOnMerge;
}
public string Url { get; protected set; }
@@ -142,6 +143,8 @@ namespace Octokit
public bool Archived { get; protected set; }
public bool? DeleteBranchOnMerge { get; protected set; }
internal string DebuggerDisplay
{
get