github3.py
github3.py copied to clipboard
Unable to set branch protections on new branches
On a branch with no protection rules enabled there is no way to get the branch protection object to enable those rules. Attempts to run the protection function result in a 404 Branch not protected error.
Version Information
Please provide:
- The version of Python you're using
Python 3.7.4
- The version of pip you used to install github3.py
pip 19.2.3
- The version of github3.py, requests, uritemplate, and dateutil installed
github3.py==1.3.0 requests==2.22.0 uritemplate==3.0.0 python-dateutil==2.8.0
Minimum Reproducible Example
branch = github.repository('gitconsensus', '.github').branch('master')
branch.protection()
Exception information
File "./githuborganizer/cli.py", line 145, in get_branch_protection
print(branch.protection())
File "/Users/robert/Repositories/GithubOrgSync/env/lib/python3.7/site-packages/github3/decorators.py", line 31, in auth_wrapper
return func(self, *args, **kwargs)
File "/Users/robert/Repositories/GithubOrgSync/env/lib/python3.7/site-packages/github3/repos/branch.py", line 73, in protection
json = self._json(resp, 200)
File "/Users/robert/Repositories/GithubOrgSync/env/lib/python3.7/site-packages/github3/models.py", line 156, in _json
raise exceptions.error_for(response)
github3.exceptions.NotFoundError: 404 Branch not protected
Huh, that's interesting. Though maybe I'm mis-reading the API. It seems that you want to call
branch.protect(), which is here in the code.
What happens if you first protect it this way?
Unfortunately that also gives an error (regardless of the arguments passed)-
File "./githuborganizer/cli.py", line 150, in test
branch.protect()
File "/Users/robert/Repositories/GithubOrgSync/env/lib/python3.7/site-packages/github3/decorators.py", line 31, in auth_wrapper
return func(self, *args, **kwargs)
File "/Users/robert/Repositories/GithubOrgSync/env/lib/python3.7/site-packages/github3/repos/branch.py", line 116, in protect
json = self._json(resp, 200)
File "/Users/robert/Repositories/GithubOrgSync/env/lib/python3.7/site-packages/github3/models.py", line 156, in _json
raise exceptions.error_for(response)
github3.exceptions.NotFoundError: 404 Not Found
I did manage a workaround by creating my own function that makes the request against the API, so this isn't blocking me on anything- that being said I'm happy to continue helping debugging, as I'm sure others will run into this too.
It looks like there's another open issue for the protect 404 error- #892
Thanks. I'll sort out trying to get that going soon.
Hi ! Any ETA on this?