@@ -32,18 +32,34 @@ gh api -X PUT "/orgs/github/teams/docs-engineering/repos/github/docs-ghes-$versi
3232 -f ' permission=admin' --silent
3333echo " --- github/employees as read"
3434gh api -X PUT " /orgs/github/teams/employees/repos/github/docs-ghes-$version " --silent
35- echo " --- Require a pull request review before merging"
36- repositoryId=" $( gh api graphql -f query=" {repository(owner:\" github\" ,name:\" docs-ghes-$version \" ){id}}" -q .data.repository.id) "
37- gh api graphql -f query='
38- mutation($repositoryId:ID!,$branch:String!,$requiredReviews:Int!) {
39- createBranchProtectionRule(input: {
40- repositoryId: $repositoryId
41- pattern: $branch
42- requiresApprovingReviews: true
43- requiredApprovingReviewCount: $requiredReviews
44- requiresCodeOwnerReviews: true
45- }) { clientMutationId }
46- }' -f repositoryId=" $repositoryId " -f branch=main -F requiredReviews=1 --silent
35+ echo " --- Protect main with a repository ruleset (1 review + code owners, no force-push or deletion)"
36+ gh api -X POST " /repos/github/docs-ghes-$version /rulesets" --input - --silent << 'RULESET '
37+ {
38+ "name": "main branch protection",
39+ "target": "branch",
40+ "enforcement": "active",
41+ "bypass_actors": [
42+ { "actor_id": 5, "actor_type": "RepositoryRole", "bypass_mode": "always" }
43+ ],
44+ "conditions": {
45+ "ref_name": { "include": ["refs/heads/main"], "exclude": [] }
46+ },
47+ "rules": [
48+ { "type": "deletion" },
49+ { "type": "non_fast_forward" },
50+ {
51+ "type": "pull_request",
52+ "parameters": {
53+ "required_approving_review_count": 1,
54+ "dismiss_stale_reviews_on_push": false,
55+ "require_code_owner_review": true,
56+ "require_last_push_approval": false,
57+ "required_review_thread_resolution": false
58+ }
59+ }
60+ ]
61+ }
62+ RULESET
4763echo " --- Enable GitHub Pages, set source to main in root directory, and make the pages site public"
4864gh api -X POST " /repos/github/docs-ghes-$version /pages" \
4965 -f " source[branch]=main" -f " source[path]=/" -F " public=true" --silent
0 commit comments