Add missing branch protection fields#2873
Conversation
Codecov ReportAttention:
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #2873 +/- ##
=======================================
Coverage 96.69% 96.70%
=======================================
Files 142 142
Lines 14533 14592 +59
=======================================
+ Hits 14053 14111 +58
- Misses 480 481 +1 ☔ View full report in Codecov by Sentry. |
fe2b552 to
8467fe3
Compare
|
@treee111 thanks for merging those existing PRs and moving this forward. Looking at the docs I found that argument
|
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [PyGithub](https://togithub.com/pygithub/pygithub) | `==2.1.1` -> `==2.2.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pygithub/pygithub (PyGithub)</summary> ### [`v2.2.0`](https://togithub.com/PyGithub/PyGithub/releases/tag/v2.2.0) [Compare Source](https://togithub.com/pygithub/pygithub/compare/v2.1.1...v2.2.0) #### Breaking Changes The `github.Comparison.Comparison` instance returned by `Repository.compare` provides a `commits` property that used to return a `list[github.Commit.Commit]`, which has now been changed to `PaginatedList[github.Commit.Commit]`. This breaks user code that assumes a `list`: ```python commits = repo.compare("v0.6", "v0.7").commits no_of_commits = len(commits) # will raise a TypeError ``` This will raise a `TypeError: object of type 'PaginatedList' has no len()`, as the returned `PaginatedList` does not support the `len()` method. Use the `totalCount` property instead: ```python commits = repo.compare("v0.6", "v0.7").commits no_of_commits = commits.totalCount ``` #### New features - Add support to call GraphQL API #### Improvements - Add parent_team_id, maintainers and notification_setting for creating and updating teams. by [@​Cheshirez](https://togithub.com/Cheshirez) in [https://github.com/PyGithub/PyGithub/pull/2863](https://togithub.com/PyGithub/PyGithub/pull/2863) - Add support for issue reactions summary by [@​smuzaffar](https://togithub.com/smuzaffar) in [https://github.com/PyGithub/PyGithub/pull/2866](https://togithub.com/PyGithub/PyGithub/pull/2866) - Support for DependabotAlert APIs by [@​coopernetes](https://togithub.com/coopernetes) in [https://github.com/PyGithub/PyGithub/pull/2879](https://togithub.com/PyGithub/PyGithub/pull/2879) - Derive GraphQL URL from base_url by [@​EnricoMi](https://togithub.com/EnricoMi) in [https://github.com/PyGithub/PyGithub/pull/2880](https://togithub.com/PyGithub/PyGithub/pull/2880) - Make `Repository.compare().commits` return paginated list by [@​EnricoMi](https://togithub.com/EnricoMi) in [https://github.com/PyGithub/PyGithub/pull/2882](https://togithub.com/PyGithub/PyGithub/pull/2882) - Add missing branch protection fields by [@​treee111](https://togithub.com/treee111) in [https://github.com/PyGithub/PyGithub/pull/2873](https://togithub.com/PyGithub/PyGithub/pull/2873) - Add `include_all_branches` to `create_repo_from_template` of `AuthenticatedUser` and `Organization` by [@​janssonoskar](https://togithub.com/janssonoskar) in [https://github.com/PyGithub/PyGithub/pull/2871](https://togithub.com/PyGithub/PyGithub/pull/2871) - Add and update organisation dependabot secrets by [@​mohy01](https://togithub.com/mohy01) in [https://github.com/PyGithub/PyGithub/pull/2316](https://togithub.com/PyGithub/PyGithub/pull/2316) - Add missing params to `Organization.create_repo` by [@​tekumara](https://togithub.com/tekumara) in [https://github.com/PyGithub/PyGithub/pull/2700](https://togithub.com/PyGithub/PyGithub/pull/2700) - Update allowed values for `Repository` collaborator permissions by [@​flying-sheep](https://togithub.com/flying-sheep) in [https://github.com/PyGithub/PyGithub/pull/1996](https://togithub.com/PyGithub/PyGithub/pull/1996) - Support editing PullRequestReview by [@​ColasGael](https://togithub.com/ColasGael) in [https://github.com/PyGithub/PyGithub/pull/2851](https://togithub.com/PyGithub/PyGithub/pull/2851) - Update attributes after calling `PullRequestReview.dismiss` by [@​ColasGael](https://togithub.com/ColasGael) in [https://github.com/PyGithub/PyGithub/pull/2854](https://togithub.com/PyGithub/PyGithub/pull/2854) - Add `request_cve` on `RepositoryAdvisories` by [@​JLLeitschuh](https://togithub.com/JLLeitschuh) in [https://github.com/PyGithub/PyGithub/pull/2855](https://togithub.com/PyGithub/PyGithub/pull/2855) - Filter collaborators of a repository by permissions by [@​notmicaelfilipe](https://togithub.com/notmicaelfilipe) in [https://github.com/PyGithub/PyGithub/pull/2792](https://togithub.com/PyGithub/PyGithub/pull/2792) - Set pull request to auto merge via GraphQL API by [@​heitorpolidoro](https://togithub.com/heitorpolidoro) in [https://github.com/PyGithub/PyGithub/pull/2816](https://togithub.com/PyGithub/PyGithub/pull/2816) - Support Environment Variables and Secrets by [@​AndrewJDawes](https://togithub.com/AndrewJDawes) in [https://github.com/PyGithub/PyGithub/pull/2848](https://togithub.com/PyGithub/PyGithub/pull/2848) - Update workflow.get_runs & pullrequest.add_to_assignees function signature by [@​sd-kialo](https://togithub.com/sd-kialo) in [https://github.com/PyGithub/PyGithub/pull/2799](https://togithub.com/PyGithub/PyGithub/pull/2799) - Add `GithubObject.last_modified_datetime` to have `last_modified` as a `datetime` by [@​chouetz](https://togithub.com/chouetz) in [https://github.com/PyGithub/PyGithub/pull/2772](https://togithub.com/PyGithub/PyGithub/pull/2772) - Add support for global advisories and unify some shared logic with repository advisories by [@​crimsonknave](https://togithub.com/crimsonknave) in [https://github.com/PyGithub/PyGithub/pull/2702](https://togithub.com/PyGithub/PyGithub/pull/2702) - Add `internal` as valid Repository visibility value by [@​AndrewJDawes](https://togithub.com/AndrewJDawes) in [https://github.com/PyGithub/PyGithub/pull/2806](https://togithub.com/PyGithub/PyGithub/pull/2806) - Add support for issue comments reactions summary by [@​smuzaffar](https://togithub.com/smuzaffar) in [https://github.com/PyGithub/PyGithub/pull/2813](https://togithub.com/PyGithub/PyGithub/pull/2813) #### Bug Fixes - Add a bunch of missing urllib.parse.quote calls by [@​ExplodingCabbage](https://togithub.com/ExplodingCabbage) in [https://github.com/PyGithub/PyGithub/pull/1976](https://togithub.com/PyGithub/PyGithub/pull/1976) - Fix Variable and Secret url bugs by [@​AndrewJDawes](https://togithub.com/AndrewJDawes) in [https://github.com/PyGithub/PyGithub/pull/2835](https://togithub.com/PyGithub/PyGithub/pull/2835) #### Maintenance - Update the class name for NetrcAuth in the examples by [@​vinnybod](https://togithub.com/vinnybod) in [https://github.com/PyGithub/PyGithub/pull/2860](https://togithub.com/PyGithub/PyGithub/pull/2860) - Move build to PEP517 by [@​trim21](https://togithub.com/trim21) in [https://github.com/PyGithub/PyGithub/pull/2800](https://togithub.com/PyGithub/PyGithub/pull/2800) - Use new type assert functions in `Repository` by [@​trim21](https://togithub.com/trim21) in [https://github.com/PyGithub/PyGithub/pull/2798](https://togithub.com/PyGithub/PyGithub/pull/2798) - PyTest: Move config to pyproject.toml by [@​Borda](https://togithub.com/Borda) in [https://github.com/PyGithub/PyGithub/pull/2859](https://togithub.com/PyGithub/PyGithub/pull/2859) - codespell: ignore-words-list by [@​Borda](https://togithub.com/Borda) in [https://github.com/PyGithub/PyGithub/pull/2858](https://togithub.com/PyGithub/PyGithub/pull/2858) - Improve fix-headers.py script by [@​EnricoMi](https://togithub.com/EnricoMi) in [https://github.com/PyGithub/PyGithub/pull/2728](https://togithub.com/PyGithub/PyGithub/pull/2728) - Remove dependency on python-dateutil by [@​lazka](https://togithub.com/lazka) in [https://github.com/PyGithub/PyGithub/pull/2804](https://togithub.com/PyGithub/PyGithub/pull/2804) - CI: update precommit & apply by [@​Borda](https://togithub.com/Borda) in [https://github.com/PyGithub/PyGithub/pull/2600](https://togithub.com/PyGithub/PyGithub/pull/2600) - Docs: Fix parameter order according to Version 2.1.0 by [@​nad182](https://togithub.com/nad182) in [https://github.com/PyGithub/PyGithub/pull/2786](https://togithub.com/PyGithub/PyGithub/pull/2786) - Add missing GitHub classes to docs by [@​EnricoMi](https://togithub.com/EnricoMi) in [https://github.com/PyGithub/PyGithub/pull/2783](https://togithub.com/PyGithub/PyGithub/pull/2783) - CI: Fix mypy error by ignoring override by [@​EnricoMi](https://togithub.com/EnricoMi) in [https://github.com/PyGithub/PyGithub/pull/2779](https://togithub.com/PyGithub/PyGithub/pull/2779) **Full Changelog**: PyGithub/PyGithub@v2.1.1...v2.2.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/lettuce-financial/github-bot-signed-commit). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
…ect (#2884) as outlined in #2873 (comment): > Looking at the [docs](https://docs.github.com/en/rest/branches/branch-protection?apiVersion=2022-11-28#update-branch-protection) I found that argument `required_status_checks.contexts` is deprecated in the API and replaced by `required_status_checks.checks`. I've done: - [x] adds `checks` as another argument - [x] `checks` should be of type `List[Union[str, Tuple[str, int]]]` so that this allows for `checks=["check1", ("check2", -1), ("check3", 123456)]` - [x] if only `context` is given, it's values should be used to populate `required_status_checks.checks.context`, rather than `required_status_checks.contexts` - [x] if both `checks` and `context` are given, `context` should be ignored Fixes #2157 --------- Co-authored-by: Enrico Minack <github@enrico.minack.dev>
…ect (PyGithub#2884) as outlined in PyGithub#2873 (comment): > Looking at the [docs](https://docs.github.com/en/rest/branches/branch-protection?apiVersion=2022-11-28#update-branch-protection) I found that argument `required_status_checks.contexts` is deprecated in the API and replaced by `required_status_checks.checks`. I've done: - [x] adds `checks` as another argument - [x] `checks` should be of type `List[Union[str, Tuple[str, int]]]` so that this allows for `checks=["check1", ("check2", -1), ("check3", 123456)]` - [x] if only `context` is given, it's values should be used to populate `required_status_checks.checks.context`, rather than `required_status_checks.contexts` - [x] if both `checks` and `context` are given, `context` should be ignored Fixes PyGithub#2157 --------- Co-authored-by: Enrico Minack <github@enrico.minack.dev>
…ect (PyGithub#2884) as outlined in PyGithub#2873 (comment): > Looking at the [docs](https://docs.github.com/en/rest/branches/branch-protection?apiVersion=2022-11-28#update-branch-protection) I found that argument `required_status_checks.contexts` is deprecated in the API and replaced by `required_status_checks.checks`. I've done: - [x] adds `checks` as another argument - [x] `checks` should be of type `List[Union[str, Tuple[str, int]]]` so that this allows for `checks=["check1", ("check2", -1), ("check3", 123456)]` - [x] if only `context` is given, it's values should be used to populate `required_status_checks.checks.context`, rather than `required_status_checks.contexts` - [x] if both `checks` and `context` are given, `context` should be ignored Fixes PyGithub#2157 --------- Co-authored-by: Enrico Minack <github@enrico.minack.dev>
…ect (PyGithub#2884) as outlined in PyGithub#2873 (comment): > Looking at the [docs](https://docs.github.com/en/rest/branches/branch-protection?apiVersion=2022-11-28#update-branch-protection) I found that argument `required_status_checks.contexts` is deprecated in the API and replaced by `required_status_checks.checks`. I've done: - [x] adds `checks` as another argument - [x] `checks` should be of type `List[Union[str, Tuple[str, int]]]` so that this allows for `checks=["check1", ("check2", -1), ("check3", 123456)]` - [x] if only `context` is given, it's values should be used to populate `required_status_checks.checks.context`, rather than `required_status_checks.contexts` - [x] if both `checks` and `context` are given, `context` should be ignored Fixes PyGithub#2157 --------- Co-authored-by: Enrico Minack <github@enrico.minack.dev>
overview
this is a collection of currently open pull requests targeting branch protection field updates with the goal to have a consistent code base of these fields in PyGithub. Consistent code base means both reading the fields and updating them through PyGithub.
I cherry picked the commits so that the contributors of the superseded PR's don't lose their credits.
related PyGithub issues
supersedes PR'S #2793, #2716, #2378
closes #2360, closes #2373, closes #2862, closes #2299, closes #2239
details
this table shows the state of the fields in the actual implementation (current
mainbranch)required_linear_historyallow_force_pushesallow_deletionsallow_fork_syncinglock_branchrequired_conversation_resolutionrequire_last_push_approvaltesting
I tested all field with my scripts and manually checked Github UI as well as the return of PyGithub via debugger.
In addition, all unittests are also green.