Apparently github changed API to deprecate "contexts" and replace it with "checks".
However they return both in query and error on update if both are present (nb. anonymized):
Traceback (most recent call last):
File "main.py", line 64, in <module>
gh_branch.protection().update(enforce_admins=False)
File "env/lib/python3.10/site-packages/github3/decorators.py", line 24, in auth_wrapper
return func(self, *args, **kwargs)
File "env/lib/python3.10/site-packages/github3/repos/branch.py", line 465, in update
json = self._json(self._put(self._api, json=edit), 200)
File "env/lib/python3.10/site-packages/github3/models.py", line 161, in _json
raise exceptions.error_for(response)
github3.exceptions.UnprocessableEntity: 422 Invalid request.
No subschema in "anyOf" matched.
More than one subschema in "oneOf" matched.
Not all subschemas of "allOf" matched.
For 'anyOf/1', {"url"=>"https://.../branches/master/protection/required_status_checks", "strict"=>true, "contexts"=>["my ci check"], "contexts_url"=>"https://.../branches/master/protection/required_status_checks/contexts", "checks"=>[{"context"=>"my ci check", "app_id"=>nil}]} is not a null.
Our workaround is when making updates to other parameters, to pass in the retrieved required_status_checks with the extra "checks" field stripped, e.g. (yes we should do this with as_dict(), I was in a rush):
https://github.com/integrations/terraform-provider-github/issues/1147 https://github.com/google/go-github/issues/2274
Apparently github changed API to deprecate "contexts" and replace it with "checks".
However they return both in query and error on update if both are present (nb. anonymized):
Our workaround is when making updates to other parameters, to pass in the retrieved required_status_checks with the extra "checks" field stripped, e.g. (yes we should do this with as_dict(), I was in a rush):