I scanned the public repos of 128 YC-backed dev tools companies, 6,195 repos in total. I expected the companies building our tooling to enforce the basics on themselves. Only 2 of the 128 require any status check to pass before merging.
Okay, now check whether anybody actually reads TOS when they check the box that says they did.
IME some people (at least the ones who care) start more critical repos with good intentions, enabling most of these things.
But then comes a time where a hotfix must be merged asap to production and there’s no one to review it for 3 days; branch protection gets disabled.
or an update in the code quality tooling detects an additional dozen warnings without the codebase changing; check enforcement gets disabled.
I think in most cases this is completely fine. Whoever is already a contributor should know what’s the team policy merging things, and having ways to occasionally bypass these checks can be more beneficial than not.
We used to use completely separate tools for code review (in our case because the process was older than git). Some of them might be doing something similar.
That’s fair, and it’s a real limit of measuring GitHub config. If a team runs review or merge gating in a separate tool, or mirrors to GitHub from somewhere that’s their actual source of truth, the scan won’t see it and they’d look unprotected when they aren’t. The finding is really about repos where GitHub is the place the work happens, and even then it’s public repos only. Worth saying plainly so the number isn’t read as more than it is.
This was my first thought - just because your code is on GitHub doesn’t mean you’re using it for everything.
Startups hack things in to production?
Shocked, I tell you.
Right? The part that surprised me was that most of them turn branch protection ON and then don’t require any check to pass. So the gate is there, it just doesn’t gate anything. Makes me wonder if private repos are the same or if the public ones just get less attention.
Not a start up, but we require code review, even though it is not enforced via rules, to allow emergency overrides.
Gets used maybe once every 300 pull requests though.
Convention over configuration is a thing - so maybe look into their actual merge behavior?
My old workplace had the same’ish. The developer team who owned the service had rights to disable branch protection. Disabling this would create alerts to the manager but allowed an on-call developer to make an emergency bug fix at 2am and get a postmortem review the next day.
Good distinction. If it’s useful, GitHub lets you require checks and still grant a bypass for specific people or teams, so the hard rule and the emergency escape hatch can coexist, and the scan reads that as passing. Could be you’ve already weighed that, in which case ignore me.
Why would you do that?
Because you hate yourself?
Oh, right, you found a tool (self reflect) that let’s you do it with zero effort. FU…





