Skip to content

Commit 1282133

Browse files
authored
feat: Add automatic_copilot_code_review_enabled parameter to ruleset API (#3506)
1 parent 9d7b554 commit 1282133

File tree

5 files changed

+64
-38
lines changed

5 files changed

+64
-38
lines changed

github/event_types_test.go

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9637,11 +9637,12 @@ func TestRepositoryRulesetEvent_Unmarshal(t *testing.T) {
96379637
MergeMethodRebase,
96389638
MergeMethodMerge,
96399639
},
9640-
DismissStaleReviewsOnPush: false,
9641-
RequireCodeOwnerReview: false,
9642-
RequireLastPushApproval: false,
9643-
RequiredApprovingReviewCount: 2,
9644-
RequiredReviewThreadResolution: false,
9640+
AutomaticCopilotCodeReviewEnabled: Ptr(false),
9641+
DismissStaleReviewsOnPush: false,
9642+
RequireCodeOwnerReview: false,
9643+
RequireLastPushApproval: false,
9644+
RequiredApprovingReviewCount: 2,
9645+
RequiredReviewThreadResolution: false,
96459646
},
96469647
CodeScanning: &CodeScanningRuleParameters{
96479648
CodeScanningTools: []*RuleCodeScanningTool{
@@ -9699,11 +9700,12 @@ func TestRepositoryRulesetEvent_Unmarshal(t *testing.T) {
96999700
MergeMethodSquash,
97009701
MergeMethodRebase,
97019702
},
9702-
DismissStaleReviewsOnPush: false,
9703-
RequireCodeOwnerReview: false,
9704-
RequireLastPushApproval: false,
9705-
RequiredApprovingReviewCount: 2,
9706-
RequiredReviewThreadResolution: false,
9703+
AutomaticCopilotCodeReviewEnabled: Ptr(false),
9704+
DismissStaleReviewsOnPush: false,
9705+
RequireCodeOwnerReview: false,
9706+
RequireLastPushApproval: false,
9707+
RequiredApprovingReviewCount: 2,
9708+
RequiredReviewThreadResolution: false,
97079709
},
97089710
CodeScanning: &CodeScanningRuleParameters{
97099711
CodeScanningTools: []*RuleCodeScanningTool{
@@ -9753,11 +9755,12 @@ func TestRepositoryRulesetEvent_Unmarshal(t *testing.T) {
97539755
MergeMethodSquash,
97549756
MergeMethodRebase,
97559757
},
9756-
DismissStaleReviewsOnPush: false,
9757-
RequireCodeOwnerReview: false,
9758-
RequireLastPushApproval: false,
9759-
RequiredApprovingReviewCount: 2,
9760-
RequiredReviewThreadResolution: false,
9758+
AutomaticCopilotCodeReviewEnabled: Ptr(false),
9759+
DismissStaleReviewsOnPush: false,
9760+
RequireCodeOwnerReview: false,
9761+
RequireLastPushApproval: false,
9762+
RequiredApprovingReviewCount: 2,
9763+
RequiredReviewThreadResolution: false,
97619764
},
97629765
},
97639766
Changes: &RepositoryRulesetChangedRule{

github/github-accessors.go

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

github/github-accessors_test.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

github/rules.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -395,12 +395,13 @@ type RequiredDeploymentsRuleParameters struct {
395395

396396
// PullRequestRuleParameters represents the pull_request rule parameters.
397397
type PullRequestRuleParameters struct {
398-
AllowedMergeMethods []MergeMethod `json:"allowed_merge_methods"`
399-
DismissStaleReviewsOnPush bool `json:"dismiss_stale_reviews_on_push"`
400-
RequireCodeOwnerReview bool `json:"require_code_owner_review"`
401-
RequireLastPushApproval bool `json:"require_last_push_approval"`
402-
RequiredApprovingReviewCount int `json:"required_approving_review_count"`
403-
RequiredReviewThreadResolution bool `json:"required_review_thread_resolution"`
398+
AllowedMergeMethods []MergeMethod `json:"allowed_merge_methods"`
399+
AutomaticCopilotCodeReviewEnabled *bool `json:"automatic_copilot_code_review_enabled,omitempty"`
400+
DismissStaleReviewsOnPush bool `json:"dismiss_stale_reviews_on_push"`
401+
RequireCodeOwnerReview bool `json:"require_code_owner_review"`
402+
RequireLastPushApproval bool `json:"require_last_push_approval"`
403+
RequiredApprovingReviewCount int `json:"required_approving_review_count"`
404+
RequiredReviewThreadResolution bool `json:"required_review_thread_resolution"`
404405
}
405406

406407
// RequiredStatusChecksRuleParameters represents the required status checks rule parameters.

github/rules_test.go

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,12 @@ func TestRulesetRules(t *testing.T) {
5959
MergeMethodSquash,
6060
MergeMethodRebase,
6161
},
62-
DismissStaleReviewsOnPush: true,
63-
RequireCodeOwnerReview: true,
64-
RequireLastPushApproval: true,
65-
RequiredApprovingReviewCount: 2,
66-
RequiredReviewThreadResolution: true,
62+
AutomaticCopilotCodeReviewEnabled: nil,
63+
DismissStaleReviewsOnPush: true,
64+
RequireCodeOwnerReview: true,
65+
RequireLastPushApproval: true,
66+
RequiredApprovingReviewCount: 2,
67+
RequiredReviewThreadResolution: true,
6768
},
6869
RequiredStatusChecks: &RequiredStatusChecksRuleParameters{
6970
RequiredStatusChecks: []*RuleStatusCheck{
@@ -149,11 +150,12 @@ func TestRulesetRules(t *testing.T) {
149150
MergeMethodSquash,
150151
MergeMethodRebase,
151152
},
152-
DismissStaleReviewsOnPush: true,
153-
RequireCodeOwnerReview: true,
154-
RequireLastPushApproval: true,
155-
RequiredApprovingReviewCount: 2,
156-
RequiredReviewThreadResolution: true,
153+
AutomaticCopilotCodeReviewEnabled: Ptr(false),
154+
DismissStaleReviewsOnPush: true,
155+
RequireCodeOwnerReview: true,
156+
RequireLastPushApproval: true,
157+
RequiredApprovingReviewCount: 2,
158+
RequiredReviewThreadResolution: true,
157159
},
158160
RequiredStatusChecks: &RequiredStatusChecksRuleParameters{
159161
DoNotEnforceOnCreate: Ptr(true),
@@ -234,7 +236,7 @@ func TestRulesetRules(t *testing.T) {
234236
},
235237
},
236238
},
237-
`[{"type":"creation"},{"type":"update","parameters":{"update_allows_fetch_and_merge":true}},{"type":"deletion"},{"type":"required_linear_history"},{"type":"merge_queue","parameters":{"check_response_timeout_minutes":5,"grouping_strategy":"ALLGREEN","max_entries_to_build":10,"max_entries_to_merge":20,"merge_method":"squash","min_entries_to_merge":1,"min_entries_to_merge_wait_minutes":15}},{"type":"required_deployments","parameters":{"required_deployment_environments":["test1","test2"]}},{"type":"required_signatures"},{"type":"pull_request","parameters":{"allowed_merge_methods":["squash","rebase"],"dismiss_stale_reviews_on_push":true,"require_code_owner_review":true,"require_last_push_approval":true,"required_approving_review_count":2,"required_review_thread_resolution":true}},{"type":"required_status_checks","parameters":{"do_not_enforce_on_create":true,"required_status_checks":[{"context":"test1","integration_id":1},{"context":"test2","integration_id":2}],"strict_required_status_checks_policy":true}},{"type":"non_fast_forward"},{"type":"commit_message_pattern","parameters":{"name":"cmp","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"commit_author_email_pattern","parameters":{"name":"caep","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"committer_email_pattern","parameters":{"name":"cep","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"branch_name_pattern","parameters":{"name":"bp","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"tag_name_pattern","parameters":{"name":"tp","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"file_path_restriction","parameters":{"restricted_file_paths":["test1","test2"]}},{"type":"max_file_path_length","parameters":{"max_file_path_length":512}},{"type":"file_extension_restriction","parameters":{"restricted_file_extensions":[".exe",".pkg"]}},{"type":"max_file_size","parameters":{"max_file_size":1024}},{"type":"workflows","parameters":{"do_not_enforce_on_create":true,"workflows":[{"path":".github/workflows/test1.yaml","ref":"main","repository_id":1,"sha":"aaaa"},{"path":".github/workflows/test2.yaml","ref":"main","repository_id":2,"sha":"bbbb"}]}},{"type":"code_scanning","parameters":{"code_scanning_tools":[{"alerts_threshold":"all","security_alerts_threshold":"all","tool":"test"},{"alerts_threshold":"none","security_alerts_threshold":"none","tool":"test"}]}}]`,
239+
`[{"type":"creation"},{"type":"update","parameters":{"update_allows_fetch_and_merge":true}},{"type":"deletion"},{"type":"required_linear_history"},{"type":"merge_queue","parameters":{"check_response_timeout_minutes":5,"grouping_strategy":"ALLGREEN","max_entries_to_build":10,"max_entries_to_merge":20,"merge_method":"squash","min_entries_to_merge":1,"min_entries_to_merge_wait_minutes":15}},{"type":"required_deployments","parameters":{"required_deployment_environments":["test1","test2"]}},{"type":"required_signatures"},{"type":"pull_request","parameters":{"allowed_merge_methods":["squash","rebase"],"automatic_copilot_code_review_enabled":false,"dismiss_stale_reviews_on_push":true,"require_code_owner_review":true,"require_last_push_approval":true,"required_approving_review_count":2,"required_review_thread_resolution":true}},{"type":"required_status_checks","parameters":{"do_not_enforce_on_create":true,"required_status_checks":[{"context":"test1","integration_id":1},{"context":"test2","integration_id":2}],"strict_required_status_checks_policy":true}},{"type":"non_fast_forward"},{"type":"commit_message_pattern","parameters":{"name":"cmp","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"commit_author_email_pattern","parameters":{"name":"caep","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"committer_email_pattern","parameters":{"name":"cep","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"branch_name_pattern","parameters":{"name":"bp","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"tag_name_pattern","parameters":{"name":"tp","negate":false,"operator":"starts_with","pattern":"test"}},{"type":"file_path_restriction","parameters":{"restricted_file_paths":["test1","test2"]}},{"type":"max_file_path_length","parameters":{"max_file_path_length":512}},{"type":"file_extension_restriction","parameters":{"restricted_file_extensions":[".exe",".pkg"]}},{"type":"max_file_size","parameters":{"max_file_size":1024}},{"type":"workflows","parameters":{"do_not_enforce_on_create":true,"workflows":[{"path":".github/workflows/test1.yaml","ref":"main","repository_id":1,"sha":"aaaa"},{"path":".github/workflows/test2.yaml","ref":"main","repository_id":2,"sha":"bbbb"}]}},{"type":"code_scanning","parameters":{"code_scanning_tools":[{"alerts_threshold":"all","security_alerts_threshold":"all","tool":"test"},{"alerts_threshold":"none","security_alerts_threshold":"none","tool":"test"}]}}]`,
238240
},
239241
}
240242

@@ -724,14 +726,15 @@ func TestRepositoryRule(t *testing.T) {
724726
MergeMethodSquash,
725727
MergeMethodRebase,
726728
},
727-
DismissStaleReviewsOnPush: true,
728-
RequireCodeOwnerReview: true,
729-
RequireLastPushApproval: true,
730-
RequiredApprovingReviewCount: 2,
731-
RequiredReviewThreadResolution: true,
729+
AutomaticCopilotCodeReviewEnabled: Ptr(true),
730+
DismissStaleReviewsOnPush: true,
731+
RequireCodeOwnerReview: true,
732+
RequireLastPushApproval: true,
733+
RequiredApprovingReviewCount: 2,
734+
RequiredReviewThreadResolution: true,
732735
},
733736
},
734-
`{"type":"pull_request","parameters":{"allowed_merge_methods":["squash","rebase"],"dismiss_stale_reviews_on_push":true,"require_code_owner_review":true,"require_last_push_approval":true,"required_approving_review_count":2,"required_review_thread_resolution":true}}`,
737+
`{"type":"pull_request","parameters":{"allowed_merge_methods":["squash","rebase"],"automatic_copilot_code_review_enabled": true,"dismiss_stale_reviews_on_push":true,"require_code_owner_review":true,"require_last_push_approval":true,"required_approving_review_count":2,"required_review_thread_resolution":true}}`,
735738
},
736739
{
737740
"required_status_checks",

0 commit comments

Comments
 (0)