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.
///