mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-05 03:30:34 +00:00
[feat] Add AutoMerge and add MergeOptions to NewRepository object (#2476)
This commit is contained in:
@@ -36,6 +36,10 @@ public class RepositoriesClientTests
|
||||
Assert.Null(repository.Homepage);
|
||||
Assert.NotNull(repository.DefaultBranch);
|
||||
Assert.Null(repository.License);
|
||||
Assert.False(repository.AllowAutoMerge);
|
||||
Assert.True(repository.AllowMergeCommit);
|
||||
Assert.True(repository.AllowRebaseMerge);
|
||||
Assert.True(repository.AllowSquashMerge);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,6 +66,89 @@ public class RepositoriesClientTests
|
||||
}
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CreatesARepositoryWithAllowAutoMergeSet()
|
||||
{
|
||||
var github = Helper.GetAuthenticatedClient();
|
||||
|
||||
var repoName = Helper.MakeNameWithTimestamp("repo-auto-merge");
|
||||
|
||||
var newRepository = new NewRepository(repoName) { AllowAutoMerge = true };
|
||||
|
||||
using (var context = await github.CreateRepositoryContext(newRepository))
|
||||
{
|
||||
var createdRepository = context.Repository;
|
||||
|
||||
// Default is false if unset, so check for true to ensure change
|
||||
Assert.True(createdRepository.AllowAutoMerge);
|
||||
var repository = await github.Repository.Get(Helper.UserName, repoName);
|
||||
Assert.True(repository.AllowAutoMerge);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CreatesARepositoryWithAllowMergeCommitSet()
|
||||
{
|
||||
var github = Helper.GetAuthenticatedClient();
|
||||
|
||||
var repoName = Helper.MakeNameWithTimestamp("repo-merge-commit");
|
||||
|
||||
var newRepository = new NewRepository(repoName) { AllowMergeCommit = false };
|
||||
|
||||
using (var context = await github.CreateRepositoryContext(newRepository))
|
||||
{
|
||||
var createdRepository = context.Repository;
|
||||
|
||||
// Default is true if unset, so check for false to ensure change
|
||||
Assert.False(createdRepository.AllowMergeCommit);
|
||||
var repository = await github.Repository.Get(Helper.UserName, repoName);
|
||||
Assert.False(repository.AllowMergeCommit);
|
||||
}
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CreatesARepositoryWithAllowRebaseMergeSet()
|
||||
{
|
||||
var github = Helper.GetAuthenticatedClient();
|
||||
|
||||
var repoName = Helper.MakeNameWithTimestamp("repo-rebase-merge");
|
||||
|
||||
var newRepository = new NewRepository(repoName) { AllowRebaseMerge = false };
|
||||
|
||||
using (var context = await github.CreateRepositoryContext(newRepository))
|
||||
{
|
||||
var createdRepository = context.Repository;
|
||||
|
||||
// Default is true if unset, so check for false to ensure change
|
||||
Assert.False(createdRepository.AllowRebaseMerge);
|
||||
var repository = await github.Repository.Get(Helper.UserName, repoName);
|
||||
Assert.False(repository.AllowRebaseMerge);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CreatesARepositoryWithAllowSquashMergeSet()
|
||||
{
|
||||
var github = Helper.GetAuthenticatedClient();
|
||||
|
||||
var repoName = Helper.MakeNameWithTimestamp("repo-squash-merge");
|
||||
|
||||
var newRepository = new NewRepository(repoName) { AllowSquashMerge = false };
|
||||
|
||||
using (var context = await github.CreateRepositoryContext(newRepository))
|
||||
{
|
||||
var createdRepository = context.Repository;
|
||||
|
||||
// Default is true if unset, so check for false to ensure change
|
||||
Assert.False(createdRepository.AllowSquashMerge);
|
||||
var repository = await github.Repository.Get(Helper.UserName, repoName);
|
||||
Assert.False(repository.AllowSquashMerge);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[IntegrationTest]
|
||||
public async Task CreatesARepositoryWithoutDownloads()
|
||||
{
|
||||
@@ -632,18 +719,21 @@ public class RepositoriesClientTests
|
||||
{
|
||||
AllowMergeCommit = false,
|
||||
AllowSquashMerge = false,
|
||||
AllowRebaseMerge = true
|
||||
AllowRebaseMerge = true, // this is the default, but the value is tested in UpdatesMergeMethodWithRepositoryId test
|
||||
AllowAutoMerge = true
|
||||
};
|
||||
|
||||
var editedRepository = await github.Repository.Edit(context.RepositoryOwner, context.RepositoryName, updateRepository);
|
||||
Assert.False(editedRepository.AllowMergeCommit);
|
||||
Assert.False(editedRepository.AllowSquashMerge);
|
||||
Assert.True(editedRepository.AllowRebaseMerge);
|
||||
Assert.True(editedRepository.AllowAutoMerge);
|
||||
|
||||
var repository = await github.Repository.Get(context.RepositoryOwner, context.RepositoryName);
|
||||
Assert.False(repository.AllowMergeCommit);
|
||||
Assert.False(repository.AllowSquashMerge);
|
||||
Assert.True(repository.AllowRebaseMerge);
|
||||
Assert.True(repository.AllowAutoMerge);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -658,18 +748,21 @@ public class RepositoriesClientTests
|
||||
{
|
||||
AllowMergeCommit = true,
|
||||
AllowSquashMerge = true,
|
||||
AllowRebaseMerge = false
|
||||
AllowRebaseMerge = false,
|
||||
AllowAutoMerge = true
|
||||
};
|
||||
|
||||
var editedRepository = await github.Repository.Edit(context.RepositoryId, updateRepository);
|
||||
Assert.True(editedRepository.AllowMergeCommit);
|
||||
Assert.True(editedRepository.AllowSquashMerge);
|
||||
Assert.False(editedRepository.AllowRebaseMerge);
|
||||
Assert.True(editedRepository.AllowAutoMerge);
|
||||
|
||||
var repository = await github.Repository.Get(context.RepositoryId);
|
||||
Assert.True(repository.AllowMergeCommit);
|
||||
Assert.True(repository.AllowSquashMerge);
|
||||
Assert.False(repository.AllowRebaseMerge);
|
||||
Assert.True(editedRepository.AllowAutoMerge);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -861,6 +954,7 @@ public class RepositoriesClientTests
|
||||
Assert.NotNull(repository.AllowRebaseMerge);
|
||||
Assert.NotNull(repository.AllowSquashMerge);
|
||||
Assert.NotNull(repository.AllowMergeCommit);
|
||||
Assert.NotNull(repository.AllowAutoMerge);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -876,6 +970,7 @@ public class RepositoriesClientTests
|
||||
Assert.NotNull(repository.AllowRebaseMerge);
|
||||
Assert.NotNull(repository.AllowSquashMerge);
|
||||
Assert.NotNull(repository.AllowMergeCommit);
|
||||
Assert.NotNull(repository.AllowAutoMerge);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -95,6 +95,26 @@ namespace Octokit
|
||||
/// </summary>
|
||||
public RepositoryVisibility? Visibility { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional. Gets or sets whether the new repository allows rebase merges.
|
||||
/// </summary>
|
||||
public bool? AllowRebaseMerge { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional. Gets or sets whether the new repository allows squash merges.
|
||||
/// </summary>
|
||||
public bool? AllowSquashMerge { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional. Gets or sets whether the new repository allows merge commits.
|
||||
/// </summary>
|
||||
public bool? AllowMergeCommit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional. Gets or sets whether the new repository allows auto merge.
|
||||
/// </summary>
|
||||
public bool? AllowAutoMerge { get; set; }
|
||||
|
||||
internal string DebuggerDisplay
|
||||
{
|
||||
get
|
||||
|
||||
@@ -77,6 +77,7 @@ namespace Octokit
|
||||
/// Optional. Allows the "Create a merge commit" merge method to be used.
|
||||
/// </summary>
|
||||
public bool? AllowMergeCommit { get; set; }
|
||||
|
||||
|
||||
public bool? DeleteBranchOnMerge { get; set; }
|
||||
|
||||
@@ -90,6 +91,11 @@ namespace Octokit
|
||||
/// </summary>
|
||||
public RepositoryVisibility? Visibility { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Options. Allows the "Auto Merge" method to be used.
|
||||
/// </summary>
|
||||
public bool? AllowAutoMerge { get; set; }
|
||||
|
||||
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal string DebuggerDisplay
|
||||
{
|
||||
|
||||
@@ -17,7 +17,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, bool? deleteBranchOnMerge, RepositoryVisibility visibility, IEnumerable<string> topics)
|
||||
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, RepositoryVisibility visibility, IEnumerable<string> topics, bool? allowAutoMerge)
|
||||
{
|
||||
Url = url;
|
||||
HtmlUrl = htmlUrl;
|
||||
@@ -62,6 +62,7 @@ namespace Octokit
|
||||
Topics = topics.ToList();
|
||||
DeleteBranchOnMerge = deleteBranchOnMerge;
|
||||
Visibility = visibility;
|
||||
AllowAutoMerge = allowAutoMerge;
|
||||
}
|
||||
|
||||
public string Url { get; protected set; }
|
||||
@@ -154,6 +155,8 @@ namespace Octokit
|
||||
|
||||
public RepositoryVisibility? Visibility { get; protected set; }
|
||||
|
||||
public bool? AllowAutoMerge { get; protected set; }
|
||||
|
||||
internal string DebuggerDisplay
|
||||
{
|
||||
get
|
||||
|
||||
Reference in New Issue
Block a user