diff --git a/cli/sync_rulesets.php b/cli/sync_rulesets.php index 8b2361e..845f492 100644 --- a/cli/sync_rulesets.php +++ b/cli/sync_rulesets.php @@ -56,34 +56,38 @@ $PROTECTIONS = [ 'name' => 'MAIN — protect default branch', 'branch' => 'main', 'rules' => [ - 'required_reviews' => 1, - 'dismiss_stale' => true, - 'enforce_admins' => true, - 'block_on_rejected' => true, + 'required_reviews' => 1, + 'dismiss_stale' => true, + 'enforce_admins' => true, + 'block_on_rejected' => true, + 'whitelist_actions_user' => true, ], ], [ 'name' => 'VERSION — immutable snapshots', 'branch' => 'version/*', 'rules' => [ - 'required_reviews' => 0, - 'enforce_admins' => true, + 'required_reviews' => 0, + 'enforce_admins' => true, + 'whitelist_actions_user' => true, ], ], [ 'name' => 'DEV — prevent branch deletion', 'branch' => 'dev/*', 'rules' => [ - 'required_reviews' => 0, - 'enforce_admins' => true, + 'required_reviews' => 0, + 'enforce_admins' => true, + 'whitelist_actions_user' => true, ], ], [ 'name' => 'RC — prevent branch deletion', 'branch' => 'rc/*', 'rules' => [ - 'required_reviews' => 0, - 'enforce_admins' => true, + 'required_reviews' => 0, + 'enforce_admins' => true, + 'whitelist_actions_user' => true, ], ], ]; diff --git a/lib/Enterprise/MokoGiteaAdapter.php b/lib/Enterprise/MokoGiteaAdapter.php index 79b0c5c..5d973e7 100644 --- a/lib/Enterprise/MokoGiteaAdapter.php +++ b/lib/Enterprise/MokoGiteaAdapter.php @@ -373,17 +373,20 @@ class MokoGiteaAdapter implements GitPlatformAdapter public function setBranchProtection(string $org, string $repo, string $branch, array $rules): array { // Gitea uses a flat branch protection API + $whitelistActions = $rules['whitelist_actions_user'] ?? false; $protection = [ - 'branch_name' => $branch, - 'enable_push' => true, - 'enable_push_whitelist' => false, - 'enable_merge_whitelist' => false, - 'enable_status_check' => $rules['required_status_checks'] ?? false, - 'enable_approvals_whitelist' => false, - 'required_approvals' => $rules['required_reviews'] ?? 0, - 'dismiss_stale_approvals' => $rules['dismiss_stale'] ?? false, - 'block_on_rejected_reviews' => $rules['block_on_rejected'] ?? true, - 'block_on_outdated_branch' => $rules['block_on_outdated'] ?? false, + 'branch_name' => $branch, + 'enable_push' => true, + 'enable_push_whitelist' => $whitelistActions, + 'push_whitelist_actions_user' => $whitelistActions, + 'enable_merge_whitelist' => false, + 'merge_whitelist_actions_user' => $whitelistActions, + 'enable_status_check' => $rules['required_status_checks'] ?? false, + 'enable_approvals_whitelist' => false, + 'required_approvals' => $rules['required_reviews'] ?? 0, + 'dismiss_stale_approvals' => $rules['dismiss_stale'] ?? false, + 'block_on_rejected_reviews' => $rules['block_on_rejected'] ?? true, + 'block_on_outdated_branch' => $rules['block_on_outdated'] ?? false, 'block_on_official_review_requests' => false, ];