You actually can (sort of), since September 2015.
That is because you now have "Protected branches and required status checks" (September 3, 2015), which allows you to protect a branch:
- against forced pushed
- against deletion
- against merged changes until required status checks pass
As mentioned in the twitter discussion:
@github nice, what about protect from just push and allow only operating through pull requests?
Adam Roben ?@aroben @lowl4tency You can do this via the Status API:
create a "success
" status only on commits in PRs, then mark that status as required.
Since Nov. 2015, you can protect a branch with the API:
curl "https://api.github.com/repos/github/hubot/branches/master"
-XPATCH
-H 'Authorization: token TOKEN'
-H "Accept: application/vnd.github.loki-preview"
-d '{
"protection": {
"enabled": true,
"required_status_checks": {
"enforcement_level": "everyone",
"contexts": [
"required-status"
]
}
}
}'
How can I try it?
To access this functionality during the preview period, you’ll need to provide the following custom media type in the Accept header:
application/vnd.github.loki-preview+json
Since March 2016, Organizations can now specify which members and teams are able to push to a protected branch.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…