diff --git a/repository_controls.go b/repository_controls.go index 678791a..1104b21 100644 --- a/repository_controls.go +++ b/repository_controls.go @@ -223,6 +223,20 @@ func branchRuleEvidenceFromGitHub(rules *github.BranchRules) *BranchRuleEvidence evidence.CodeScanningTools = append(evidence.CodeScanningTools, tool.Tool) } } + for _, rule := range rules.PullRequest { + if rule == nil { + continue + } + if rule.Parameters.RequiredApprovingReviewCount > evidence.RequiredApprovingReviewCount { + evidence.RequiredApprovingReviewCount = rule.Parameters.RequiredApprovingReviewCount + } + if rule.Parameters.DismissStaleReviewsOnPush { + evidence.DismissStaleReviewsOnPush = true + } + if rule.Parameters.RequireCodeOwnerReview { + evidence.RequireCodeOwnerReview = true + } + } return evidence } diff --git a/types.go b/types.go index b2d367b..f235cae 100644 --- a/types.go +++ b/types.go @@ -99,7 +99,10 @@ type RepositoryEnvironment struct { } type BranchRuleEvidence struct { - RequiredSignatures bool `json:"required_signatures"` - RequiredDeployments []string `json:"required_deployments,omitempty"` - CodeScanningTools []string `json:"code_scanning_tools,omitempty"` + RequiredSignatures bool `json:"required_signatures"` + RequiredDeployments []string `json:"required_deployments,omitempty"` + CodeScanningTools []string `json:"code_scanning_tools,omitempty"` + RequiredApprovingReviewCount int `json:"required_approving_review_count,omitempty"` + DismissStaleReviewsOnPush bool `json:"dismiss_stale_reviews_on_push,omitempty"` + RequireCodeOwnerReview bool `json:"require_code_owner_review,omitempty"` }