title: How to allow automated CI processes to push commits with Github branch protections?
body: <p>Github added branch protections a while back and recently added another  option for requiring reviews.</p>
  
  <p>I tried out requiring reviews and status checks (except for administrators) and liked the workflow. But it has a negative impact on our CI/deployment tool. </p>
  
  <p>For example, when we release a new version, there is an automated process in the CI environment that increments the version number in <code>package.json</code>, commits it, and pushes it to the repository. There are a few processes like this, such as clean up tasks.</p>
  
  <p><a href="https://i.stack.imgur.com/ZCg55.png" rel="noreferrer"><img src="https://i.stack.imgur.com/ZCg55.png" alt="Example branch protection for master"></a></p>
  
  <p>These automated processes don't need reviews or passing status checks (the status checks have already been run at least twice as part of the deployment pipeline by that point). After enabling the branch protections, however, the CI "user" can't push.</p>
  
  <pre><code>remote: error: GH006: Protected branch update failed for refs/heads/master. 
  remote: error: Required status check "default" is expected. At least one approved review is required
  </code></pre>
  
  <p>Previously our CI "user" had "write" permissions. I tried giving it "admin" permissions to the repo I was trying this out on, but that's clearly not sufficient; even as an admin, the CI "user" can't push.</p>
  
  <p>In the picture above I tried removing "reviews", hoping the status checks would be fine without further work. Nope!</p>
  
  <p>What I'd ideally like is for the CI "user" to be exempted from these requirements. It doesn't look like that is a feature. Which may mean my only other option is turning most of the protections off, including some of the ones I want.</p>
  
  <p>But there may be some update or change I could make to the existing CI pipeline--or some configuration of protections I could create--that would have this end result:</p>
  
  <ul>
  <li>Human users see that reviews and status checks are required before merging or pushing. (check)</li>
  <li>Only maintainers and CI can push directly to the branch. (check)</li>
  <li>Admins can override the requirements on a case by case basis. (check)</li>
  <li>CI can push directly to the branch without having to get a review or wait on a status check. (need help)</li>
  </ul>
  
  <p>Anyone done a similar setups or know how to get around the CI "user" being blocked? Since obviously the CI "user" can't physically navigate to a pull request on Github.com and check box next to "Use your administrator privileges to merge this pull request." Is there a CLI flag for <code>--usemyadminprivilegestopushthis</code>?</p>