<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/automatically-migrate-branch-protection-rules-to-repository-rulesets-fm2tkakq4" -->

---
title: Automatically migrate branch protection rules to...
description: GitHub now lets you automatically convert classic branch protection rules to repository rulesets directly from repository settings (Settings → Branches →...
canonical: https://daily.dev/posts/automatically-migrate-branch-protection-rules-to-repository-rulesets-fm2tkakq4
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Automatically migrate branch protection rules to repository rulesets | daily.dev
og:description: GitHub now lets you automatically convert classic branch protection rules to repository rulesets directly from repository settings (Settings → Branches →...
og:url: https://daily.dev/posts/automatically-migrate-branch-protection-rules-to-repository-rulesets-fm2tkakq4
og:image: https://api.daily.dev/og/posts/fM2tKaKq4.png
og:image:alt: Automatically migrate branch protection rules to repository rulesets
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Automatically migrate branch protection rules to repository rulesets

**[GitHub Changelog](https://daily.dev/sources/github_updates)** · 1 min read · 5 upvotes · 1 comments

## Summary

GitHub now lets you automatically convert classic branch protection rules to repository rulesets directly from repository settings (Settings → Branches → Convert to ruleset). The migration maps existing configurations — required reviews, status checks, push restrictions — into equivalent ruleset rules. Rulesets offer advantages over classic branch protections: pattern-matching across multiple branches, layerable policies, organization/enterprise-level management, and fine-grained bypass permissions for users, teams, and apps.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.blog/changelog/2026-08-11-automatically-migrate-branch-protection-rules-to-repository-rulesets>

## Questions this post answers

### How do I convert my existing GitHub branch protection rules to repository rulesets?

Go to Settings then Branches in the repository, find the classic rule under Branch protection rules, and click Convert to ruleset. GitHub automatically maps the existing configuration, including required reviews, status checks, and push restrictions, into equivalent ruleset rules without needing to recreate them manually.

_daily.dev surfaces GitHub platform changes like this for engineers keeping repo governance current._

### What advantages do GitHub repository rulesets have over classic branch protection rules?

Rulesets support applying rules across multiple branches using pattern matching, layering multiple rulesets for more granular control, managing policies centrally at the organization or enterprise level, and configuring fine-grained bypass permissions for specific users, teams, and apps, none of which classic branch protection rules support.

_Teams weighing repo governance options can track these comparisons on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@trevorsuna** · 0 upvotes

> Layerable rules and organization-level management are the real payoff here. After conversion, I would still compare the generated bypass list and required checks against the classic rule before enabling it broadly; migrations are where a small permission mismatch can hide.

## Similar posts on daily.dev

- [Repository rulesets: User bypass and branch renaming](https://daily.dev/posts/repository-rulesets-user-bypass-and-branch-renaming-g6e2dz9nv) · GitHub Changelog · 1 upvotes · 0 comments
- [Required reviewer rule is now generally available](https://daily.dev/posts/required-reviewer-rule-is-now-generally-available-gdbncmd5h) · GitHub Changelog · 6 upvotes · 0 comments
- [GitHub Separates Who Writes Code From Who Runs Your CI](https://daily.dev/posts/github-separates-who-writes-code-from-who-runs-your-ci-nku4hdcup) · DevOps.com · 0 upvotes · 0 comments
- [Manage the code coverage ruleset condition with the REST API](https://daily.dev/posts/manage-the-code-coverage-ruleset-condition-with-the-rest-api-obwpisupq) · GitHub Changelog · 1 upvotes · 0 comments

---

Tags: [#github](https://daily.dev/tags/github), [#git](https://daily.dev/tags/git)

[View this post on daily.dev](https://daily.dev/posts/automatically-migrate-branch-protection-rules-to-repository-rulesets-fm2tkakq4)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Automatically migrate branch protection rules to repository rulesets","url":"https://daily.dev/posts/automatically-migrate-branch-protection-rules-to-repository-rulesets-fm2tkakq4","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/automatically-migrate-branch-protection-rules-to-repository-rulesets-fm2tkakq4"},"datePublished":"2026-08-11T20:29:07.404Z","dateModified":"2026-09-14T07:18:08.729Z","description":"GitHub now lets you automatically convert classic branch protection rules to repository rulesets directly from repository settings (Settings → Branches →...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/375133501a3d4e13ffceecd07df02db7?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/375133501a3d4e13ffceecd07df02db7?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"GitHub Changelog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"GitHub Changelog","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/15004b7835da4d89b02b115871f0f6dc","url":"https://daily.dev/sources/github_updates"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/automatically-migrate-branch-protection-rules-to-repository-rulesets-fm2tkakq4","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":5},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"github,git","timeRequired":"PT1M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"GitHub Changelog","item":"https://daily.dev/sources/github_updates"},{"@type":"ListItem","position":3,"name":"Automatically migrate branch protection rules to repository rulesets"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/automatically-migrate-branch-protection-rules-to-repository-rulesets-fm2tkakq4","comment":[{"@type":"Comment","text":"Layerable rules and organization-level management are the real payoff here. After conversion, I would still compare the generated bypass list and required checks against the classic rule before enabling it broadly; migrations are where a small permission mismatch can hide.","datePublished":"2026-08-12T02:41:19.569Z","url":"https://daily.dev/posts/fM2tKaKq4#c-LFB6C2lqW","author":{"@type":"Person","name":"Trevor Suna","url":"https://daily.dev/trevorsuna","image":"https://media.daily.dev/image/upload/s--dZ7gXxpp--/f_auto/v1784081551/avatars/avatar_EMoP47rpuw8DNjhp6R1b6?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/automatically-migrate-branch-protection-rules-to-repository-rulesets-fm2tkakq4#faq","mainEntity":[{"@type":"Question","name":"How do I convert my existing GitHub branch protection rules to repository rulesets?","acceptedAnswer":{"@type":"Answer","text":"Go to Settings then Branches in the repository, find the classic rule under Branch protection rules, and click Convert to ruleset. GitHub automatically maps the existing configuration, including required reviews, status checks, and push restrictions, into equivalent ruleset rules without needing to recreate them manually. daily.dev surfaces GitHub platform changes like this for engineers keeping repo governance current."}},{"@type":"Question","name":"What advantages do GitHub repository rulesets have over classic branch protection rules?","acceptedAnswer":{"@type":"Answer","text":"Rulesets support applying rules across multiple branches using pattern matching, layering multiple rulesets for more granular control, managing policies centrally at the organization or enterprise level, and configuring fine-grained bypass permissions for specific users, teams, and apps, none of which classic branch protection rules support. Teams weighing repo governance options can track these comparisons on daily.dev."}}]}
```

