[FEAT] Add support for "Require approval of the most recent reviewable push" (#2839)

Add support for "Require approval of the most recent reviewable push"

Co-authored-by: Nick Floyd <139819+nickfloyd@users.noreply.github.com>
This commit is contained in:
Chris
2024-01-03 16:42:22 +00:00
committed by GitHub
parent 3e92a697b4
commit b1a2cf52ed
4 changed files with 45 additions and 10 deletions
@@ -292,6 +292,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(protection.RequiredPullRequestReviews.DismissalRestrictions);
Assert.True(protection.RequiredPullRequestReviews.DismissStaleReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireCodeOwnerReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireLastPushApproval);
Assert.Null(protection.Restrictions);
@@ -320,6 +321,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(protection.RequiredPullRequestReviews.DismissalRestrictions);
Assert.True(protection.RequiredPullRequestReviews.DismissStaleReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireCodeOwnerReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireLastPushApproval);
Assert.Null(protection.Restrictions);
@@ -349,6 +351,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Equal(0, protection.RequiredPullRequestReviews.DismissalRestrictions.Users.Count);
Assert.True(protection.RequiredPullRequestReviews.DismissStaleReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireCodeOwnerReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireLastPushApproval);
Assert.Equal(1, protection.Restrictions.Teams.Count);
Assert.Equal(0, protection.Restrictions.Users.Count);
@@ -373,6 +376,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Equal(0, protection.RequiredPullRequestReviews.DismissalRestrictions.Users.Count);
Assert.True(protection.RequiredPullRequestReviews.DismissStaleReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireCodeOwnerReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireLastPushApproval);
Assert.Equal(1, protection.Restrictions.Teams.Count);
Assert.Equal(0, protection.Restrictions.Users.Count);
@@ -404,6 +408,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(protection.RequiredPullRequestReviews.DismissalRestrictions);
Assert.False(protection.RequiredPullRequestReviews.DismissStaleReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireCodeOwnerReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireLastPushApproval);
Assert.Equal(2, protection.RequiredPullRequestReviews.RequiredApprovingReviewCount);
Assert.Null(protection.Restrictions);
@@ -432,6 +437,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(protection.RequiredPullRequestReviews.DismissalRestrictions);
Assert.False(protection.RequiredPullRequestReviews.DismissStaleReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireCodeOwnerReviews);
Assert.True(protection.RequiredPullRequestReviews.RequireLastPushApproval);
Assert.Equal(2, protection.RequiredPullRequestReviews.RequiredApprovingReviewCount);
Assert.Null(protection.Restrictions);
@@ -461,6 +467,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(protection.RequiredPullRequestReviews.DismissalRestrictions);
Assert.False(protection.RequiredPullRequestReviews.DismissStaleReviews);
Assert.False(protection.RequiredPullRequestReviews.RequireCodeOwnerReviews);
Assert.False(protection.RequiredPullRequestReviews.RequireLastPushApproval);
Assert.Equal(2, protection.RequiredPullRequestReviews.RequiredApprovingReviewCount);
Assert.Empty(protection.Restrictions.Teams);
@@ -490,6 +497,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(protection.RequiredPullRequestReviews.DismissalRestrictions);
Assert.False(protection.RequiredPullRequestReviews.DismissStaleReviews);
Assert.False(protection.RequiredPullRequestReviews.RequireCodeOwnerReviews);
Assert.False(protection.RequiredPullRequestReviews.RequireLastPushApproval);
Assert.Equal(2, protection.RequiredPullRequestReviews.RequiredApprovingReviewCount);
Assert.Empty(protection.Restrictions.Teams);
@@ -798,6 +806,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(requiredReviews.DismissalRestrictions);
Assert.True(requiredReviews.DismissStaleReviews);
Assert.True(requiredReviews.RequireCodeOwnerReviews);
Assert.True(requiredReviews.RequireLastPushApproval);
}
}
@@ -813,6 +822,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(requiredReviews.DismissalRestrictions);
Assert.True(requiredReviews.DismissStaleReviews);
Assert.True(requiredReviews.RequireCodeOwnerReviews);
Assert.True(requiredReviews.RequireLastPushApproval);
}
}
@@ -829,6 +839,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Equal(0, requiredReviews.DismissalRestrictions.Users.Count);
Assert.True(requiredReviews.DismissStaleReviews);
Assert.True(requiredReviews.RequireCodeOwnerReviews);
Assert.True(requiredReviews.RequireLastPushApproval);
}
}
@@ -845,6 +856,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Equal(0, requiredReviews.DismissalRestrictions.Users.Count);
Assert.True(requiredReviews.DismissStaleReviews);
Assert.True(requiredReviews.RequireCodeOwnerReviews);
Assert.True(requiredReviews.RequireLastPushApproval);
}
}
}
@@ -865,6 +877,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(requiredReviews.DismissalRestrictions);
Assert.False(requiredReviews.DismissStaleReviews);
Assert.True(requiredReviews.RequireCodeOwnerReviews);
Assert.True(requiredReviews.RequireLastPushApproval);
Assert.Equal(2, requiredReviews.RequiredApprovingReviewCount);
}
}
@@ -883,6 +896,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(requiredReviews.DismissalRestrictions);
Assert.False(requiredReviews.DismissStaleReviews);
Assert.True(requiredReviews.RequireCodeOwnerReviews);
Assert.True(requiredReviews.RequireLastPushApproval);
Assert.Equal(2, requiredReviews.RequiredApprovingReviewCount);
}
}
@@ -905,6 +919,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(requiredReviews.DismissalRestrictions);
Assert.False(requiredReviews.DismissStaleReviews);
Assert.False(requiredReviews.RequireCodeOwnerReviews);
Assert.False(requiredReviews.RequireLastPushApproval);
Assert.Equal(2, requiredReviews.RequiredApprovingReviewCount);
}
}
@@ -927,6 +942,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Null(requiredReviews.DismissalRestrictions);
Assert.False(requiredReviews.DismissStaleReviews);
Assert.False(requiredReviews.RequireCodeOwnerReviews);
Assert.False(requiredReviews.RequireLastPushApproval);
Assert.Equal(2, requiredReviews.RequiredApprovingReviewCount);
}
}
@@ -950,6 +966,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Empty(requiredReviews.DismissalRestrictions.Users);
Assert.False(requiredReviews.DismissStaleReviews);
Assert.False(requiredReviews.RequireCodeOwnerReviews);
Assert.False(requiredReviews.RequireLastPushApproval);
Assert.Equal(2, requiredReviews.RequiredApprovingReviewCount);
}
}
@@ -973,6 +990,7 @@ namespace Octokit.Tests.Integration.Clients
Assert.Empty(requiredReviews.DismissalRestrictions.Users);
Assert.False(requiredReviews.DismissStaleReviews);
Assert.False(requiredReviews.RequireCodeOwnerReviews);
Assert.False(requiredReviews.RequireLastPushApproval);
Assert.Equal(2, requiredReviews.RequiredApprovingReviewCount);
}
}
@@ -28,7 +28,7 @@ namespace Octokit.Tests.Integration.Helpers
// Protect default branch
var update = new BranchProtectionSettingsUpdate(
new BranchProtectionRequiredStatusChecksUpdate(true, new[] { "build", "test" }),
new BranchProtectionRequiredReviewsUpdate(true, true, 3),
new BranchProtectionRequiredReviewsUpdate(true, true, 3, true),
null,
true,
true,
@@ -78,7 +78,7 @@ namespace Octokit.Tests.Integration.Helpers
// Protect default branch
var protection = new BranchProtectionSettingsUpdate(
new BranchProtectionRequiredStatusChecksUpdate(true, new[] { "build", "test" }),
new BranchProtectionRequiredReviewsUpdate(new BranchProtectionRequiredReviewsDismissalRestrictionsUpdate(new BranchProtectionTeamCollection { team.TeamName }), true, true, 3),
new BranchProtectionRequiredReviewsUpdate(new BranchProtectionRequiredReviewsDismissalRestrictionsUpdate(new BranchProtectionTeamCollection { team.TeamName }), true, true, 3, true),
new BranchProtectionPushRestrictionsUpdate(new BranchProtectionTeamCollection { team.TeamName }),
true);
await client.Repository.Branch.UpdateBranchProtection(repoContext.RepositoryOwner, repoContext.RepositoryName, repoContext.RepositoryDefaultBranch, protection);
@@ -105,7 +105,7 @@ namespace Octokit.Tests.Integration.Helpers
// Protect default branch
var protection = new BranchProtectionSettingsUpdate(
new BranchProtectionRequiredStatusChecksUpdate(true, new[] { "build", "test" }),
new BranchProtectionRequiredReviewsUpdate(new BranchProtectionRequiredReviewsDismissalRestrictionsUpdate(new BranchProtectionTeamCollection { contextOrgTeam.TeamName }), true, true, 3),
new BranchProtectionRequiredReviewsUpdate(new BranchProtectionRequiredReviewsDismissalRestrictionsUpdate(new BranchProtectionTeamCollection { contextOrgTeam.TeamName }), true, true, 3, true),
new BranchProtectionPushRestrictionsUpdate(new BranchProtectionTeamCollection { contextOrgTeam.TeamName }),
true);
await client.Repository.Branch.UpdateBranchProtection(contextOrgRepo.RepositoryOwner, contextOrgRepo.RepositoryName, "main", protection);