diff --git a/Octokit.Tests.Integration/Clients/BranchesClientTests.cs b/Octokit.Tests.Integration/Clients/BranchesClientTests.cs index 00b18beb..944ff64f 100644 --- a/Octokit.Tests.Integration/Clients/BranchesClientTests.cs +++ b/Octokit.Tests.Integration/Clients/BranchesClientTests.cs @@ -42,11 +42,12 @@ public class BranchesClientTests public async Task CreateTheWorld() { // Set master branch to be protected, with some status checks + var requiredStatusChecks = new RequiredStatusChecks(EnforcementLevel.Everyone, null); + requiredStatusChecks.AddContext("check1"); + requiredStatusChecks.AddContext("check2"); + var update = new BranchUpdate(); - update.Protection.Enabled = true; - update.Protection.RequiredStatusChecks.EnforcementLevel = EnforcementLevel.Everyone; - update.Protection.RequiredStatusChecks.AddContext("check1"); - update.Protection.RequiredStatusChecks.AddContext("check2"); + update.Protection = new BranchProtection(true, requiredStatusChecks); var newBranch = await _fixture.EditBranch(_context.Repository.Owner.Login, _context.Repository.Name, "master", update); } @@ -55,12 +56,13 @@ public class BranchesClientTests public async Task ProtectsBranch() { // Set master branch to be protected, with some status checks + var requiredStatusChecks = new RequiredStatusChecks(EnforcementLevel.Everyone, null); + requiredStatusChecks.AddContext("check1"); + requiredStatusChecks.AddContext("check2"); + requiredStatusChecks.AddContext("check3"); + var update = new BranchUpdate(); - update.Protection.Enabled = true; - update.Protection.RequiredStatusChecks.EnforcementLevel = EnforcementLevel.Everyone; - update.Protection.RequiredStatusChecks.AddContext("check1"); - update.Protection.RequiredStatusChecks.AddContext("check2"); - update.Protection.RequiredStatusChecks.AddContext("check3"); + update.Protection = new BranchProtection(true, requiredStatusChecks); var branch = await _fixture.EditBranch(_context.Repository.Owner.Login, _context.Repository.Name, "master", update); @@ -81,11 +83,13 @@ public class BranchesClientTests { await CreateTheWorld(); - // Clear status checks + // Remove status check enforcement + var requiredStatusChecks = new RequiredStatusChecks(EnforcementLevel.Off, null); + requiredStatusChecks.AddContext("check1"); + var update = new BranchUpdate(); - update.Protection.Enabled = true; - update.Protection.RequiredStatusChecks.EnforcementLevel = EnforcementLevel.Off; - update.Protection.RequiredStatusChecks.AddContext("check1"); + update.Protection = new BranchProtection(true, requiredStatusChecks); + var branch = await _fixture.EditBranch(_context.Repository.Owner.Login, _context.Repository.Name, "master", update); // Ensure a branch object was returned @@ -106,12 +110,13 @@ public class BranchesClientTests await CreateTheWorld(); // Unprotect branch - var update = new BranchUpdate(); - update.Protection.Enabled = false; - // Deliberately set Enforcement and Contexts to some values (these should be ignored) - update.Protection.RequiredStatusChecks.EnforcementLevel = EnforcementLevel.Everyone; - update.Protection.RequiredStatusChecks.AddContext("check1"); + var requiredStatusChecks = new RequiredStatusChecks(EnforcementLevel.Everyone, null); + requiredStatusChecks.AddContext("check1"); + + var update = new BranchUpdate(); + update.Protection = new BranchProtection(false, requiredStatusChecks); + var branch = await _fixture.EditBranch(_context.Repository.Owner.Login, _context.Repository.Name, "master", update); // Ensure a branch object was returned diff --git a/Octokit/Models/Response/BranchProtection.cs b/Octokit/Models/Response/BranchProtection.cs index 5c0857c6..4414de8f 100644 --- a/Octokit/Models/Response/BranchProtection.cs +++ b/Octokit/Models/Response/BranchProtection.cs @@ -15,16 +15,17 @@ namespace Octokit /// /// Should this branch be protected or not /// - public bool Enabled { get; set; } + public bool Enabled { get; protected set; } /// /// The information for this . /// public RequiredStatusChecks RequiredStatusChecks { get; private set; } - public BranchProtection() + public BranchProtection(bool enabled, RequiredStatusChecks requiredStatusChecks) { - RequiredStatusChecks = new RequiredStatusChecks(); + Enabled = enabled; + RequiredStatusChecks = requiredStatusChecks; } internal string DebuggerDisplay @@ -42,13 +43,19 @@ namespace Octokit /// /// Who required status checks apply to /// - public EnforcementLevel EnforcementLevel { get; set; } + public EnforcementLevel EnforcementLevel { get; protected set; } /// /// The list of status checks to require in order to merge into this /// public ICollection Contexts { get; private set; } + public RequiredStatusChecks(EnforcementLevel enforcementLevel, ICollection contexts) + { + EnforcementLevel = enforcementLevel; + Contexts = contexts; + } + /// /// Adds the specified context to the required status checks. ///