[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

View File

@@ -370,11 +370,13 @@ namespace Octokit
/// <param name="dismissStaleReviews">Dismiss approved reviews automatically when a new commit is pushed.</param>
/// <param name="requireCodeOwnerReviews">Blocks merge until code owners have reviewed.</param>
/// <param name="requiredApprovingReviewCount">Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6.</param>
public BranchProtectionRequiredReviewsUpdate(bool dismissStaleReviews, bool requireCodeOwnerReviews, int requiredApprovingReviewCount)
/// <param name="requireLastPushApproval">Whether the most recent push must be approved by someone other than the person who pushed it. Default: false.</param>
public BranchProtectionRequiredReviewsUpdate(bool dismissStaleReviews, bool requireCodeOwnerReviews, int requiredApprovingReviewCount, bool requireLastPushApproval = false)
{
DismissStaleReviews = dismissStaleReviews;
RequireCodeOwnerReviews = requireCodeOwnerReviews;
RequiredApprovingReviewCount = requiredApprovingReviewCount;
RequireLastPushApproval = requireLastPushApproval;
}
/// <summary>
@@ -384,7 +386,8 @@ namespace Octokit
/// <param name="dismissStaleReviews">Dismiss approved reviews automatically when a new commit is pushed.</param>
/// <param name="requireCodeOwnerReviews">Blocks merge until code owners have reviewed.</param>
/// <param name="requiredApprovingReviewCount">Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6.</param>
public BranchProtectionRequiredReviewsUpdate(BranchProtectionRequiredReviewsDismissalRestrictionsUpdate dismissalRestrictions, bool dismissStaleReviews, bool requireCodeOwnerReviews, int requiredApprovingReviewCount)
/// <param name="requireLastPushApproval">Whether the most recent push must be approved by someone other than the person who pushed it. Default: false.</param>
public BranchProtectionRequiredReviewsUpdate(BranchProtectionRequiredReviewsDismissalRestrictionsUpdate dismissalRestrictions, bool dismissStaleReviews, bool requireCodeOwnerReviews, int requiredApprovingReviewCount, bool requireLastPushApproval = false)
{
Ensure.ArgumentNotNull(dismissalRestrictions, nameof(dismissalRestrictions));
@@ -392,6 +395,7 @@ namespace Octokit
DismissStaleReviews = dismissStaleReviews;
RequireCodeOwnerReviews = requireCodeOwnerReviews;
RequiredApprovingReviewCount = requiredApprovingReviewCount;
RequireLastPushApproval = requireLastPushApproval;
}
/// <summary>
@@ -413,16 +417,22 @@ namespace Octokit
/// Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6.
/// </summary>
public int RequiredApprovingReviewCount { get; protected set; }
/// <summary>
/// Whether the most recent push must be approved by someone other than the person who pushed it. Default: false
/// </summary>
public bool RequireLastPushApproval { get; protected set; }
internal string DebuggerDisplay
{
get
{
return string.Format(CultureInfo.InvariantCulture, "DismissalRestrictions: {0} DismissStaleReviews: {1} RequireCodeOwnerReviews: {2} RequiredApprovingReviewCount: {3}",
return string.Format(CultureInfo.InvariantCulture, "DismissalRestrictions: {0} DismissStaleReviews: {1} RequireCodeOwnerReviews: {2} RequiredApprovingReviewCount: {3} RequireLastPushApproval: {4}",
DismissalRestrictions?.DebuggerDisplay ?? "disabled",
DismissStaleReviews,
RequireCodeOwnerReviews,
RequiredApprovingReviewCount);
RequiredApprovingReviewCount,
RequireLastPushApproval);
}
}
}

View File

@@ -236,12 +236,13 @@ namespace Octokit
{
public BranchProtectionRequiredReviews() { }
public BranchProtectionRequiredReviews(BranchProtectionRequiredReviewsDismissalRestrictions dismissalRestrictions, bool dismissStaleReviews, bool requireCodeOwnerReviews, int requiredApprovingReviewCount)
public BranchProtectionRequiredReviews(BranchProtectionRequiredReviewsDismissalRestrictions dismissalRestrictions, bool dismissStaleReviews, bool requireCodeOwnerReviews, int requiredApprovingReviewCount, bool requireLastPushApproval)
{
DismissalRestrictions = dismissalRestrictions;
DismissStaleReviews = dismissStaleReviews;
RequireCodeOwnerReviews = requireCodeOwnerReviews;
RequiredApprovingReviewCount = requiredApprovingReviewCount;
RequireLastPushApproval = requireLastPushApproval;
}
/// <summary>
@@ -263,16 +264,22 @@ namespace Octokit
/// Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6.
/// </summary>
public int RequiredApprovingReviewCount { get; private set; }
/// <summary>
/// Whether the most recent push must be approved by someone other than the person who pushed it. Default: false
/// </summary>
public bool RequireLastPushApproval { get; protected set; }
internal string DebuggerDisplay
{
get
{
return string.Format(CultureInfo.InvariantCulture, "DismissalRestrictions: {0} DismissStaleReviews: {1} RequireCodeOwnerReviews: {2} RequiredApprovingReviewCount: {3}",
return string.Format(CultureInfo.InvariantCulture, "DismissalRestrictions: {0} DismissStaleReviews: {1} RequireCodeOwnerReviews: {2} RequiredApprovingReviewCount: {3} RequireLastPushApproval: {4}",
DismissalRestrictions?.DebuggerDisplay ?? "disabled",
DismissStaleReviews,
RequireCodeOwnerReviews,
RequiredApprovingReviewCount);
RequiredApprovingReviewCount,
RequireLastPushApproval);
}
}
}