It used to be possible to protect a branch of GitHub and simply prevent pushing directly to that branch. Now, when configuring branch protections, there is a checkbox called "Require approvals" that can not be unselected if pull requests are required before merging:
How can we require a pull request (disable direct pushing to a branch) without requiring approvals? Our goal is to prevent accidental conflicts in the main branch, by enforcing the workflow that everyone (even administrators) should make a pull request to merge changes rather than committing directly.
