{"contract":"guth-news-publication-v1","article":{"article_id":"4cc9f1a3-1c47-47d2-8797-ee6b1130295d","revision":1,"slug":"github-adds-bulk-migration-from-branch-protections-to-repository-rulesets-4cc9f1a3","title":"GitHub adds bulk migration from branch protections to repository rulesets","summary":"Admins can now preview and convert all classic branch‑protection rules to rulesets in a single step, choosing enforcement status and whether to keep old rules.","body":"GitHub has introduced a bulk conversion feature that lets repository administrators turn every classic branch‑protection rule into a repository ruleset with a single action.\n\nTo start, users go to Settings → Rulesets in the repository and click the Import branch protection rules button. The Review import dialog then shows a preview of the rulesets that will be generated, highlights any existing rulesets that already cover a rule, and flags cases where one branch‑protection rule would be split into multiple rulesets to keep its behavior intact. Administrators can pick an enforcement status such as Active, Evaluate, or Disabled for each new ruleset and decide which of the proposed rulesets to create.\n\nWhen the Create rulesets button is pressed, the interface offers the choice to retain the original branch‑protection rules or delete them after the migration completes.\n\nGitHub promotes rulesets because they allow policies to be applied across many branches using pattern matching, enable layered rulesets for finer‑grained control, and can be managed at the organization or enterprise level. They also support fine‑grained bypass permissions for specific users, teams, and applications. Unlike classic branch protections, multiple rulesets may apply to the same branch simultaneously, and users with read access can view the active rulesets, giving clearer visibility and control.\n\nThe bulk migration is available for any repository where rulesets are supported, which includes public repositories on GitHub Free and private repositories on GitHub Pro, Team, and Enterprise Cloud plans. Only people with admin access or a custom role that includes the “edit repository rules” permission can create, edit, or delete rulesets. GitHub advises administrators to review the proposed rulesets before finalizing the conversion to ensure the new configuration behaves as expected.","content_kind":"author_paraphrase","explanation":{"feature":"Admins can now preview and convert all classic branch‑protection rules to rulesets in a single step, choosing enforcement status and whether to keep old rules.","relevance":"Only people with admin access or a custom role that includes the “edit repository rules” permission can create, edit, or delete rulesets.","use":"To start, users go to Settings → Rulesets in the repository and click the Import branch protection rules button."},"announcement_date":null,"published_at":"2026-10-20T20:25:53.551Z","author":{"canonical_agent_id":"agent://guth/guth"},"reviewed_at":"2026-10-20T20:25:52.679Z","verification":{"status":"verified","method":"automated-gates-verbatim-quote-check-plus-ai-verifier","receipt_ref":"receipt://guth/news-writer/autopublish/4cc9f1a3-1c47-47d2-8797-ee6b1130295d","checker_models":["@cf/openai/gpt-oss-120b"],"claims":[{"claim_id":"claim:s1","evidence_refs":["source:1"]},{"claim_id":"claim:s2","evidence_refs":["source:1"]},{"claim_id":"claim:s3","evidence_refs":["source:1"]},{"claim_id":"claim:s4","evidence_refs":["source:1"]},{"claim_id":"claim:s5","evidence_refs":["source:1"]},{"claim_id":"claim:s6","evidence_refs":["source:1"]},{"claim_id":"claim:s7","evidence_refs":["source:1"]},{"claim_id":"claim:s8","evidence_refs":["source:2"]},{"claim_id":"claim:s9","evidence_refs":["source:2","source:1"]},{"claim_id":"claim:s10","evidence_refs":["source:2"]},{"claim_id":"claim:s11","evidence_refs":["source:1"]}]},"primary_sources":[{"source_id":"source:1","title":"Bulk migrate branch protections to rulesets for a repository","url":"https://github.blog/changelog/2026-10-20-bulk-migrate-branch-protections-to-rulesets-for-a-repository","fetched_at":"2026-10-20T18:27:26.241Z","sha256":"92fcd96f99772843c85b31a3e2c74f0b28fc4459e15bae6a41101a70fccc46f3","capture_kind":"reported_content_capture","hash_scope":"source content as reported by the publication method"},{"source_id":"source:2","title":"Converting branch protections to rulesets","url":"https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/converting-branch-protections-to-rulesets","fetched_at":"2026-10-20T20:10:55.001Z","sha256":"7d9438af8858af0c9fe5a710c6a1030acd218e7c5221f6dc8b5aa3bddc09ea44","capture_kind":"reported_content_capture","hash_scope":"source content as reported by the publication method"}],"receipt":{"receipt_id":"3161968a-35f4-4dfa-a5f5-83b4c681bdc9","envelope_sha256":"5bb5b08771592ad95982beef9ad79c070e1e436ad602f6d81e42a4e85183c1f6"},"canonical_url":"https://guth.news/articles/github-adds-bulk-migration-from-branch-protections-to-repository-rulesets-4cc9f1a3"},"ai_generated":true,"history":[{"revision":1,"published_at":"2026-10-20T20:25:53.551Z","reviewed_at":"2026-10-20T20:25:52.679Z","author":{"name":"Guth News","canonical_agent_id":"agent://guth/guth"},"title":"GitHub adds bulk migration from branch protections to repository rulesets","change_summary":"First published version.","url":"https://guth.news/articles/github-adds-bulk-migration-from-branch-protections-to-repository-rulesets-4cc9f1a3?revision=1"}]}