Pygithub

Latest version: v2.6.1

Safety actively analyzes 710644 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 17

2.7.0

-----------------------

Breaking Changes
^^^^^^^^^^^^^^^^

* Method ``Github.get_rate_limit()`` now returns ``RateLimitOverview`` rather than ``RateLimit``.

Code like

.. code-block:: python

gh.get_rate_limit().core.remaining

should be replaced with

.. code-block:: python

gh.get_rate_limit().resources.core.remaining

2.6.0

---------------------------------

Breaking Changes
^^^^^^^^^^^^^^^^

* Rework ``Views`` and ``Clones`` (`3168 <https://github.com/PyGithub/PyGithub/pull/3168>`_) (`f7d52249 <https://github.com/PyGithub/PyGithub/commit/f7d52249>`_):

View and clones traffic information returned by ``Repository.get_views_traffic`` and ``Repository.get_clones_traffic``
now return proper PyGithub objects, instead of a ``dict``, with all information that used to be provided by the ``dict``:

Code like

.. code-block:: python

repo.get_views_traffic().["views"].timestamp
repo.get_clones_traffic().["clones"].timestamp

should be replaced with

.. code-block:: python

repo.get_views_traffic().views.timestamp
repo.get_clones_traffic().clones.timestamp

* Add ``GitCommitVerification`` class (`3028 <https://github.com/PyGithub/PyGithub/pull/3028>`_) (`822e6d71 <https://github.com/PyGithub/PyGithub/commit/822e6d71>`_):

Changes the return value of ``GitTag.verification`` and ``GitCommit.verification`` from ``dict`` to ``GitCommitVerification``.

Code like

.. code-block:: python

tag.verification["reason"]
commit.verification["reason"]

should be replaced with

.. code-block:: python

tag.verification.reason
commit.verification.reason

* Property ``AppAuth.private_key`` has been removed (`3065 <https://github.com/PyGithub/PyGithub/pull/3065>`_) (`36697b22 <https://github.com/PyGithub/PyGithub/commit/36697b22>`_)

* Fix typos (`3086 <https://github.com/PyGithub/PyGithub/pull/3086>`_) (`a50ae51b <https://github.com/PyGithub/PyGithub/commit/a50ae51b>`_):

Property ``OrganizationCustomProperty.respository_id`` renamed to ``OrganizationCustomProperty.repository_id``.

New Features
^^^^^^^^^^^^
* Add capability for global laziness (`2746 <https://github.com/PyGithub/PyGithub/pull/2746>`_) (`f23da453 <https://github.com/PyGithub/PyGithub/commit/f23da453>`_)
* Add Support for GitHub Copilot Seat Management in Organizations (`3082 <https://github.com/PyGithub/PyGithub/pull/3082>`_) (`b5f8f078 <https://github.com/PyGithub/PyGithub/commit/b5f8f078>`_)
* Get branches where commit is head (`3083 <https://github.com/PyGithub/PyGithub/pull/3083>`_) (`3d84a47a <https://github.com/PyGithub/PyGithub/commit/3d84a47a>`_)
* Support downloading a Release Asset (`3060 <https://github.com/PyGithub/PyGithub/pull/3060>`_) (`67cfdb21 <https://github.com/PyGithub/PyGithub/commit/67cfdb21>`_)
* Add ``Repository.merge_upstream`` method (`3175 <https://github.com/PyGithub/PyGithub/pull/3175>`_) (`2f95352e <https://github.com/PyGithub/PyGithub/commit/2f95352e>`_)
* Support updating pull request draft status (`3104 <https://github.com/PyGithub/PyGithub/pull/3104>`_) (`5ec7b775 <https://github.com/PyGithub/PyGithub/commit/5ec7b775>`_)
* Add transfer ownership method to Repository (`3091 <https://github.com/PyGithub/PyGithub/pull/3091>`_) (`b3ccd105 <https://github.com/PyGithub/PyGithub/commit/b3ccd105>`_)
* Add enable and disable a Workflow (`3088 <https://github.com/PyGithub/PyGithub/pull/3088>`_) (`7f7d2282 <https://github.com/PyGithub/PyGithub/commit/7f7d2282>`_)
* Add support for managing Code Security Configurations (`3095 <https://github.com/PyGithub/PyGithub/pull/3095>`_) (`ee5d1da3 <https://github.com/PyGithub/PyGithub/commit/ee5d1da3>`_)
* Allow for private_key / sign function in AppAuth (`3065 <https://github.com/PyGithub/PyGithub/pull/3065>`_) (`36697b22 <https://github.com/PyGithub/PyGithub/commit/36697b22>`_)
* Add ``GitCommitVerification`` class (`3028 <https://github.com/PyGithub/PyGithub/pull/3028>`_) (`822e6d71 <https://github.com/PyGithub/PyGithub/commit/822e6d71>`_)

Improvements
^^^^^^^^^^^^
* Update RateLimit object with all the new categories GitHub added. (`3096 <https://github.com/PyGithub/PyGithub/pull/3096>`_) (`152429d9 <https://github.com/PyGithub/PyGithub/commit/152429d9>`_)
* Add support for make-latest to create_git_release and create_git_tag_and_release (`3067 <https://github.com/PyGithub/PyGithub/pull/3067>`_) (`8ed5635f <https://github.com/PyGithub/PyGithub/commit/8ed5635f>`_)
* Add branch protection support for ``required_status_checks.checks`` object (`2884 <https://github.com/PyGithub/PyGithub/pull/2884>`_) (`764540d3 <https://github.com/PyGithub/PyGithub/commit/764540d3>`_)
* Use id and tree_id from simple-commit to populate GitCommit.sha and GitCommit.tree (`3167 <https://github.com/PyGithub/PyGithub/pull/3167>`_) (`04887640 <https://github.com/PyGithub/PyGithub/commit/04887640>`_)
* Use message of response in GithubException (`3185 <https://github.com/PyGithub/PyGithub/pull/3185>`_) (`bd35f7dd <https://github.com/PyGithub/PyGithub/commit/bd35f7dd>`_)
* Sync Advisory classes with API spec (`3193 <https://github.com/PyGithub/PyGithub/pull/3193>`_) (`d9d93c03 <https://github.com/PyGithub/PyGithub/commit/d9d93c03>`_)
* Sync Branch class with API spec (`3109 <https://github.com/PyGithub/PyGithub/pull/3109>`_) (`5570eba1 <https://github.com/PyGithub/PyGithub/commit/5570eba1>`_)
* Sync BranchProtection class with API spec (`3110 <https://github.com/PyGithub/PyGithub/pull/3110>`_) (`936b3ef5 <https://github.com/PyGithub/PyGithub/commit/936b3ef5>`_)
* Sync CheckRunAnnotation class with API spec (`3112 <https://github.com/PyGithub/PyGithub/pull/3112>`_) (`29eb0f58 <https://github.com/PyGithub/PyGithub/commit/29eb0f58>`_)
* Sync CheckRun class with API spec (`3111 <https://github.com/PyGithub/PyGithub/pull/3111>`_) (`3837c7df <https://github.com/PyGithub/PyGithub/commit/3837c7df>`_)
* Sync CheckSuite class with API spec (`3113 <https://github.com/PyGithub/PyGithub/pull/3113>`_) (`fa75d667 <https://github.com/PyGithub/PyGithub/commit/fa75d667>`_)
* Sync Commit class with API spec (`3116 <https://github.com/PyGithub/PyGithub/pull/3116>`_) (`b2748ed9 <https://github.com/PyGithub/PyGithub/commit/b2748ed9>`_)
* Sync CommitComment class with API spec (`3117 <https://github.com/PyGithub/PyGithub/pull/3117>`_) (`51945360 <https://github.com/PyGithub/PyGithub/commit/51945360>`_)
* Sync CommitStatus class with API spec (`3118 <https://github.com/PyGithub/PyGithub/pull/3118>`_) (`9a455056 <https://github.com/PyGithub/PyGithub/commit/9a455056>`_)
* Sync ContentFile class with API spec (`3119 <https://github.com/PyGithub/PyGithub/pull/3119>`_) (`a9aa872f <https://github.com/PyGithub/PyGithub/commit/a9aa872f>`_)
* Sync DependabotAlert class with API spec (`3120 <https://github.com/PyGithub/PyGithub/pull/3120>`_) (`79b4fc7c <https://github.com/PyGithub/PyGithub/commit/79b4fc7c>`_)
* Sync Deployment class with API spec (`3121 <https://github.com/PyGithub/PyGithub/pull/3121>`_) (`c2d3b5e2 <https://github.com/PyGithub/PyGithub/commit/c2d3b5e2>`_)
* Sync DeploymentStatus class with API spec (`3122 <https://github.com/PyGithub/PyGithub/pull/3122>`_) (`b3a06f07 <https://github.com/PyGithub/PyGithub/commit/b3a06f07>`_)
* Sync Gist class with API spec (`3123 <https://github.com/PyGithub/PyGithub/pull/3123>`_) (`6764017b <https://github.com/PyGithub/PyGithub/commit/6764017b>`_)
* Sync GistComment class with API spec (`3124 <https://github.com/PyGithub/PyGithub/pull/3124>`_) (`eb6019a4 <https://github.com/PyGithub/PyGithub/commit/eb6019a4>`_)
* Sync GitBlob class with API spec (`3125 <https://github.com/PyGithub/PyGithub/pull/3125>`_) (`876ff10d <https://github.com/PyGithub/PyGithub/commit/876ff10d>`_)
* Sync GitCommit class with API spec (`3126 <https://github.com/PyGithub/PyGithub/pull/3126>`_) (`6276e20f <https://github.com/PyGithub/PyGithub/commit/6276e20f>`_)
* Sync GithubApp class with API spec (`3127 <https://github.com/PyGithub/PyGithub/pull/3127>`_) (`5327617e <https://github.com/PyGithub/PyGithub/commit/5327617e>`_)
* Sync GitRef class with API spec (`3128 <https://github.com/PyGithub/PyGithub/pull/3128>`_) (`a69f1d6f <https://github.com/PyGithub/PyGithub/commit/a69f1d6f>`_)
* Sync GitReleaseAsset class with API spec (`3130 <https://github.com/PyGithub/PyGithub/pull/3130>`_) (`c5ab18f1 <https://github.com/PyGithub/PyGithub/commit/c5ab18f1>`_)
* Sync GitRelease class with API spec (`3129 <https://github.com/PyGithub/PyGithub/pull/3129>`_) (`ebf3fe8e <https://github.com/PyGithub/PyGithub/commit/ebf3fe8e>`_)
* Sync GitTag class with API spec (`3131 <https://github.com/PyGithub/PyGithub/pull/3131>`_) (`58f26d85 <https://github.com/PyGithub/PyGithub/commit/58f26d85>`_)
* Sync GitTree class with API spec (`3132 <https://github.com/PyGithub/PyGithub/pull/3132>`_) (`a38cb5ad <https://github.com/PyGithub/PyGithub/commit/a38cb5ad>`_)
* Sync Hook class with API spec (`3133 <https://github.com/PyGithub/PyGithub/pull/3133>`_) (`2e477f8c <https://github.com/PyGithub/PyGithub/commit/2e477f8c>`_)
* Sync HookDelivery class with API spec (`3134 <https://github.com/PyGithub/PyGithub/pull/3134>`_) (`15d57595 <https://github.com/PyGithub/PyGithub/commit/15d57595>`_)
* Sync InstallationAuthorization class with API spec (`3136 <https://github.com/PyGithub/PyGithub/pull/3136>`_) (`649de20b <https://github.com/PyGithub/PyGithub/commit/649de20b>`_)
* Sync Installation class with API spec (`3135 <https://github.com/PyGithub/PyGithub/pull/3135>`_) (`3e4185d8 <https://github.com/PyGithub/PyGithub/commit/3e4185d8>`_)
* Sync Invitation class with API spec (`3139 <https://github.com/PyGithub/PyGithub/pull/3139>`_) (`0df2e394 <https://github.com/PyGithub/PyGithub/commit/0df2e394>`_)
* Sync Issue class with API spec (`3140 <https://github.com/PyGithub/PyGithub/pull/3140>`_) (`769c6967 <https://github.com/PyGithub/PyGithub/commit/769c6967>`_)
* Sync IssueComment class with API spec (`3141 <https://github.com/PyGithub/PyGithub/pull/3141>`_) (`bb3353b4 <https://github.com/PyGithub/PyGithub/commit/bb3353b4>`_)
* Sync IssueEvent class with API spec (`3142 <https://github.com/PyGithub/PyGithub/pull/3142>`_) (`be44bb58 <https://github.com/PyGithub/PyGithub/commit/be44bb58>`_)
* Sync IssuePullRequest class with API spec (`3143 <https://github.com/PyGithub/PyGithub/pull/3143>`_) (`1836b073 <https://github.com/PyGithub/PyGithub/commit/1836b073>`_)
* Sync Label class with API spec (`3144 <https://github.com/PyGithub/PyGithub/pull/3144>`_) (`4535b9e1 <https://github.com/PyGithub/PyGithub/commit/4535b9e1>`_)
* Sync License class with API spec (`3145 <https://github.com/PyGithub/PyGithub/pull/3145>`_) (`dda13366 <https://github.com/PyGithub/PyGithub/commit/dda13366>`_)
* Sync Membership class with API spec (`3146 <https://github.com/PyGithub/PyGithub/pull/3146>`_) (`bc643cc8 <https://github.com/PyGithub/PyGithub/commit/bc643cc8>`_)
* Sync Migration class with API spec (`3147 <https://github.com/PyGithub/PyGithub/pull/3147>`_) (`dabc1fb2 <https://github.com/PyGithub/PyGithub/commit/dabc1fb2>`_)
* Sync Milestone class with API spec (`3148 <https://github.com/PyGithub/PyGithub/pull/3148>`_) (`12aee396 <https://github.com/PyGithub/PyGithub/commit/12aee396>`_)
* Sync NamedUser class with API spec (`3149 <https://github.com/PyGithub/PyGithub/pull/3149>`_) (`b481fab0 <https://github.com/PyGithub/PyGithub/commit/b481fab0>`_)
* Sync Organization class with API spec (`3150 <https://github.com/PyGithub/PyGithub/pull/3150>`_) (`5b36bc40 <https://github.com/PyGithub/PyGithub/commit/5b36bc40>`_)
* Sync OrganizationCustomProperty class with API spec (`3151 <https://github.com/PyGithub/PyGithub/pull/3151>`_) (`519b61b0 <https://github.com/PyGithub/PyGithub/commit/519b61b0>`_)
* Sync Project class with API spec (`3194 <https://github.com/PyGithub/PyGithub/pull/3194>`_) (`6ed83964 <https://github.com/PyGithub/PyGithub/commit/6ed83964>`_)
* Sync PublicKey class with API spec (`3152 <https://github.com/PyGithub/PyGithub/pull/3152>`_) (`26c284bc <https://github.com/PyGithub/PyGithub/commit/26c284bc>`_)
* Sync PullRequest class with API spec (`3153 <https://github.com/PyGithub/PyGithub/pull/3153>`_) (`563bdbb4 <https://github.com/PyGithub/PyGithub/commit/563bdbb4>`_)
* Sync PullRequestComment class with API spec (`3154 <https://github.com/PyGithub/PyGithub/pull/3154>`_) (`e262c2ee <https://github.com/PyGithub/PyGithub/commit/e262c2ee>`_)
* Sync RateLimit class with API spec (`3155 <https://github.com/PyGithub/PyGithub/pull/3155>`_) (`db1e8797 <https://github.com/PyGithub/PyGithub/commit/db1e8797>`_)
* Sync Repository class with API spec (`3156 <https://github.com/PyGithub/PyGithub/pull/3156>`_) (`f03b3163 <https://github.com/PyGithub/PyGithub/commit/f03b3163>`_)
* Sync RepositoryKey class with API spec (`3157 <https://github.com/PyGithub/PyGithub/pull/3157>`_) (`365f9899 <https://github.com/PyGithub/PyGithub/commit/365f9899>`_)
* Sync SecurityAndAnalysis class with API spec (`3158 <https://github.com/PyGithub/PyGithub/pull/3158>`_) (`65546abd <https://github.com/PyGithub/PyGithub/commit/65546abd>`_)
* Sync SelfHostedActionsRunner class with API spec (`3159 <https://github.com/PyGithub/PyGithub/pull/3159>`_) (`ea4a8d1d <https://github.com/PyGithub/PyGithub/commit/ea4a8d1d>`_)
* Sync SourceImport class with API spec (`3160 <https://github.com/PyGithub/PyGithub/pull/3160>`_) (`4d989733 <https://github.com/PyGithub/PyGithub/commit/4d989733>`_)
* Sync Tag class with API spec (`3161 <https://github.com/PyGithub/PyGithub/pull/3161>`_) (`a0a25bce <https://github.com/PyGithub/PyGithub/commit/a0a25bce>`_)
* Sync Team class with API spec (`3162 <https://github.com/PyGithub/PyGithub/pull/3162>`_) (`a1e68550 <https://github.com/PyGithub/PyGithub/commit/a1e68550>`_)
* Sync Topic class with API spec (`3163 <https://github.com/PyGithub/PyGithub/pull/3163>`_) (`67eced78 <https://github.com/PyGithub/PyGithub/commit/67eced78>`_)
* Sync UserKey class with API spec (`3164 <https://github.com/PyGithub/PyGithub/pull/3164>`_) (`9d04305a <https://github.com/PyGithub/PyGithub/commit/9d04305a>`_)
* Sync Workflow class with API spec (`3165 <https://github.com/PyGithub/PyGithub/pull/3165>`_) (`b656a311 <https://github.com/PyGithub/PyGithub/commit/b656a311>`_)
* Sync WorkflowRun class with API spec (`3166 <https://github.com/PyGithub/PyGithub/pull/3166>`_) (`468fa1b3 <https://github.com/PyGithub/PyGithub/commit/468fa1b3>`_)

Bug Fixes
^^^^^^^^^
* Patch httpretty socket for latest urllib3 release (`3102 <https://github.com/PyGithub/PyGithub/pull/3102>`_) (`81f8f05b <https://github.com/PyGithub/PyGithub/commit/81f8f05b>`_)
* Fix API break when contents not found (`3181 <https://github.com/PyGithub/PyGithub/pull/3181>`_) (`d90323fa <https://github.com/PyGithub/PyGithub/commit/d90323fa>`_)
* Change ``start_side`` argument of ``PullRequest.create_review_comment`` from ``int`` to ``str`` (`3170 <https://github.com/PyGithub/PyGithub/pull/3170>`_) (`f814de7d <https://github.com/PyGithub/PyGithub/commit/f814de7d>`_)
* Create Review Request - transform string params to a list (`3099 <https://github.com/PyGithub/PyGithub/pull/3099>`_) (`8aef11c0 <https://github.com/PyGithub/PyGithub/commit/8aef11c0>`_)
* Fix ``Repository.get_contents`` redirection (`3183 <https://github.com/PyGithub/PyGithub/pull/3183>`_) (`193f6991 <https://github.com/PyGithub/PyGithub/commit/193f6991>`_)

Others
^^^^^^
* Fix typos (`3086 <https://github.com/PyGithub/PyGithub/pull/3086>`_) (`a50ae51b <https://github.com/PyGithub/PyGithub/commit/a50ae51b>`_)
* Make ``conclusion`` nullable in ``WorkflowJob.py`` (`3171 <https://github.com/PyGithub/PyGithub/pull/3171>`_) (`8d8eb06d <https://github.com/PyGithub/PyGithub/commit/8d8eb06d>`_)
* Rename ``Github.get_organization`` argument ``login`` to ``org`` (`3187 <https://github.com/PyGithub/PyGithub/pull/3187>`_) (`9e3cf209 <https://github.com/PyGithub/PyGithub/commit/9e3cf209>`_)
* Make ``NotSet`` an ``Attribute[Any]`` (`3057 <https://github.com/PyGithub/PyGithub/pull/3057>`_)

Maintenance
^^^^^^^^^^^
* Sort attributes and properties in GitHub classes (`3105 <https://github.com/PyGithub/PyGithub/pull/3105>`_) (`f3986b57 <https://github.com/PyGithub/PyGithub/commit/f3986b57>`_)
* Preparations for maintaining Github classes by code (`3106 <https://github.com/PyGithub/PyGithub/pull/3106>`_) (`842a1b02 <https://github.com/PyGithub/PyGithub/commit/842a1b02>`_)
* Annotate Github classes with API schemas (`3107 <https://github.com/PyGithub/PyGithub/pull/3107>`_) (`d092f478 <https://github.com/PyGithub/PyGithub/commit/d092f478>`_)
* Make Pickle test use recorded data (`3137 <https://github.com/PyGithub/PyGithub/pull/3137>`_) (`1990eb92 <https://github.com/PyGithub/PyGithub/commit/1990eb92>`_)
* Add tests for file and stream downloads (`3182 <https://github.com/PyGithub/PyGithub/pull/3182>`_) (`d483fe25 <https://github.com/PyGithub/PyGithub/commit/d483fe25>`_)
* Use ``responses`` instead of ``httpretty`` in tests (`3087 <https://github.com/PyGithub/PyGithub/pull/3087>`_) (`9b293d44 <https://github.com/PyGithub/PyGithub/commit/9b293d44>`_)
* [CI] Publish test results (`3195 <https://github.com/PyGithub/PyGithub/pull/3195>`_)
* Link Commit to correct upstream documentation (`2936 <https://github.com/PyGithub/PyGithub/pull/2936>`_) (`4d307a7c <https://github.com/PyGithub/PyGithub/commit/4d307a7c>`_)
* Replace release drafter with Github release note generation (`3196 <https://github.com/PyGithub/PyGithub/pull/3196>`_) (`6f9a2983 <https://github.com/PyGithub/PyGithub/commit/6f9a2983>`_)
* Add maintenance label to release.yml (`3197 <https://github.com/PyGithub/PyGithub/pull/3197>`_) (`cab8d078 <https://github.com/PyGithub/PyGithub/commit/cab8d078>`_)

2.5.0

---------------------------------

Breaking Changes
^^^^^^^^^^^^^^^^

* Parameters of method ``github.Requester.Requester.graphql_named_mutation`` have been renamed:

* Parameter ``variables`` renamed to ``mutation_input``
* Parameter ``output`` renamed to ``output_schema``
* Default value of parameter ``output`` has been removed

New features
^^^^^^^^^^^^

* Rework GraphQL mutations (`3046 <https://github.com/PyGithub/PyGithub/pull/3046>`_) (`27222251 <https://github.com/PyGithub/PyGithub/commit/27222251>`_)
* Make pagination work with GraphQL response data (`3047 <https://github.com/PyGithub/PyGithub/pull/3047>`_) (`cd30e379 <https://github.com/PyGithub/PyGithub/commit/cd30e379>`_)
* Add `RepositoryDiscussion` powered by GraphQL API (`3048 <https://github.com/PyGithub/PyGithub/pull/3048>`_) (`29359f3c <https://github.com/PyGithub/PyGithub/commit/29359f3c>`_)
* Add `Repository.get_discussion()` to get a single Discussion (`3072 <https://github.com/PyGithub/PyGithub/pull/3072>`_) (`44120b1e <https://github.com/PyGithub/PyGithub/commit/44120b1e>`_)

Improvements
^^^^^^^^^^^^

* Adds List organization memberships for the authenticated user (`3040 <https://github.com/PyGithub/PyGithub/pull/3040>`_) (`cf443955 <https://github.com/PyGithub/PyGithub/commit/cf443955>`_)
* Add `actor` property to WorkflowRun (`2764 <https://github.com/PyGithub/PyGithub/pull/2764>`_) (`612ba68e <https://github.com/PyGithub/PyGithub/commit/612ba68e>`_)
* Make requester a public attribute (`3056 <https://github.com/PyGithub/PyGithub/pull/3056>`_) (`c44ec523 <https://github.com/PyGithub/PyGithub/commit/c44ec523>`_)

Bug Fixes
^^^^^^^^^

* Fix requesting urls containing parameters with parameters dict (`2929 <https://github.com/PyGithub/PyGithub/pull/2929>`_) (`e1d67ada <https://github.com/PyGithub/PyGithub/commit/e1d67ada>`_)
* PullRequest.delete_branch: fix the remaining pull requests check (`3063 <https://github.com/PyGithub/PyGithub/pull/3063>`_) (`72fa6278 <https://github.com/PyGithub/PyGithub/commit/72fa6278>`_)

Maintenance
^^^^^^^^^^^

* Remove stale bot (`510c1402 <https://github.com/PyGithub/PyGithub/commit/510c1402>`_)
* Upgrade Github actions (`3075 <https://github.com/PyGithub/PyGithub/pull/3075>`_) (`323e2828 <https://github.com/PyGithub/PyGithub/commit/323e2828>`_)
* Add top issues dashboard action (`3049 <https://github.com/PyGithub/PyGithub/pull/3049>`_) (`c91f26a7 <https://github.com/PyGithub/PyGithub/commit/c91f26a7>`_)
* Make tests pass some more years (`3045 <https://github.com/PyGithub/PyGithub/pull/3045>`_) (`352c55aa <https://github.com/PyGithub/PyGithub/commit/352c55aa>`_)
* Run top issues workflow only in PyGithub repo (`0d395d4e <https://github.com/PyGithub/PyGithub/commit/0d395d4e>`_)
* Replace pre-commit Github action in order to pin pre-commit version (`3059 <https://github.com/PyGithub/PyGithub/pull/3059>`_) (`1a05b43d <https://github.com/PyGithub/PyGithub/commit/1a05b43d>`_)

2.4.0

-------------------------------

Breaking Changes
^^^^^^^^^^^^^^^^

* The ``github.Commit.Commit`` class provides a ``files`` property that used to return a ``list[github.File.File]``,
which has now been changed to ``PaginatedList[github.File.File]``. This breaks user code that assumes a ``list``:

.. code-block:: python

files = repo.get_commit("7266e812ed2976ea36a4303edecfe5d75522343f").files
no_of_files = len(files)

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:

.. code-block:: python

files = repo.get_commit("7266e812ed2976ea36a4303edecfe5d75522343f").files
no_of_files = files.totalCount

* Removed support for Python 3.7.

New features
^^^^^^^^^^^^

* Allow custom authentication (`2987 <https://github.com/PyGithub/PyGithub/pull/2987>`_) (`32b826fd <https://github.com/PyGithub/PyGithub/commit/32b826fd>`_)

Improvements
^^^^^^^^^^^^

* Add `has_discussions` to `AuthenticatedUser` and `Repository` classes (`3020 <https://github.com/PyGithub/PyGithub/pull/3020>`_) (`75224167 <https://github.com/PyGithub/PyGithub/commit/75224167>`_)
* Update more `SecurityAndAnalysis` attributes (`3025 <https://github.com/PyGithub/PyGithub/pull/3025>`_) (`fa168279 <https://github.com/PyGithub/PyGithub/commit/fa168279>`_)
* Implement support for re-running only failed workflow jobs. (`2983 <https://github.com/PyGithub/PyGithub/pull/2983>`_) (`23e87563 <https://github.com/PyGithub/PyGithub/commit/23e87563>`_)
* Add possibility to mark a thread/notification as done (`2985 <https://github.com/PyGithub/PyGithub/pull/2985>`_) (`5ba24379 <https://github.com/PyGithub/PyGithub/commit/5ba24379>`_)
* Add "pull_request_review_id" to PullRequestComment object (`3000 <https://github.com/PyGithub/PyGithub/pull/3000>`_) (`6a59cf82 <https://github.com/PyGithub/PyGithub/commit/6a59cf82>`_)
* Add minimize and unminimize functions for IssueComment class (`3005 <https://github.com/PyGithub/PyGithub/pull/3005>`_) (`09c4f58e <https://github.com/PyGithub/PyGithub/commit/09c4f58e>`_)
* Support Organization/Repository custom properties (`2968 <https://github.com/PyGithub/PyGithub/pull/2968>`_) (`c5e6b702 <https://github.com/PyGithub/PyGithub/commit/c5e6b702>`_)
* Add `dict` type to `add_attribute` script (`2977 <https://github.com/PyGithub/PyGithub/pull/2977>`_) (`2a04f9cc <https://github.com/PyGithub/PyGithub/commit/2a04f9cc>`_)
* Allow for deleting and restoring branch associated with PR (`1784 <https://github.com/PyGithub/PyGithub/pull/1784>`_) (`4ba1e412 <https://github.com/PyGithub/PyGithub/commit/4ba1e412>`_)
* Add "archived_at" to Organization object. (`2974 <https://github.com/PyGithub/PyGithub/pull/2974>`_) (`cc766a6f <https://github.com/PyGithub/PyGithub/commit/cc766a6f>`_)
* Adds Security & Analysis To Repository (`2960 <https://github.com/PyGithub/PyGithub/pull/2960>`_) (`f22af54d <https://github.com/PyGithub/PyGithub/commit/f22af54d>`_)
* Add added_by and last_used attributes to RepositoryKey (`2952 <https://github.com/PyGithub/PyGithub/pull/2952>`_) (`5dffa64d <https://github.com/PyGithub/PyGithub/commit/5dffa64d>`_)
* Add `make_latest` to `GitRelease.update_release` (`2888 <https://github.com/PyGithub/PyGithub/pull/2888>`_) (`60136105 <https://github.com/PyGithub/PyGithub/commit/60136105>`_)
* Make Commit.files return PaginatedList (`2939 <https://github.com/PyGithub/PyGithub/pull/2939>`_) (`fa885f00 <https://github.com/PyGithub/PyGithub/commit/fa885f00>`_)

Bug Fixes
^^^^^^^^^

* Fix GraphQL Queries with Variables (`3002 <https://github.com/PyGithub/PyGithub/pull/3002>`_) (`4324a3d9 <https://github.com/PyGithub/PyGithub/commit/4324a3d9>`_)

Maintenance
^^^^^^^^^^^

* Remove support for Python 3.7 (2975, 3008) (d0e05072, 6d60b754)
* docs: add missing code-block (`2982 <https://github.com/PyGithub/PyGithub/pull/2982>`_) (`c93e73e2 <https://github.com/PyGithub/PyGithub/commit/c93e73e2>`_)
* Update README.md (`2961 <https://github.com/PyGithub/PyGithub/pull/2961>`_) (`5d9f90d2 <https://github.com/PyGithub/PyGithub/commit/5d9f90d2>`_)
* CI: Fix test success job (`3010 <https://github.com/PyGithub/PyGithub/pull/3010>`_) (`61d37dce <https://github.com/PyGithub/PyGithub/commit/61d37dce>`_)

2.3.0

------------------------------

New features
^^^^^^^^^^^^

* Support OAuth for enterprise (`2780 <https://github.com/PyGithub/PyGithub/pull/2780>`_) (`e4106e00 <https://github.com/PyGithub/PyGithub/commit/e4106e00>`_)
* Support creation of Dependabot Organization and Repository Secrets (`2874 <https://github.com/PyGithub/PyGithub/pull/2874>`_) (`0784f835 <https://github.com/PyGithub/PyGithub/commit/0784f835>`_)

Improvements
^^^^^^^^^^^^

* Create release with optional name and message when generate_release_notes is true (`2868 <https://github.com/PyGithub/PyGithub/pull/2868>`_) (`d65fc30d <https://github.com/PyGithub/PyGithub/commit/d65fc30d>`_)
* Add missing attributes to WorkflowJob (`2921 <https://github.com/PyGithub/PyGithub/pull/2921>`_) (`9e092458 <https://github.com/PyGithub/PyGithub/commit/9e092458>`_)
* Add `created` and `check_suite_id` filter for Repository WorkflowRuns (`2891 <https://github.com/PyGithub/PyGithub/pull/2891>`_) (`c788985c <https://github.com/PyGithub/PyGithub/commit/c788985c>`_)
* Assert requester argument type in Auth (`2912 <https://github.com/PyGithub/PyGithub/pull/2912>`_) (`0b8435fc <https://github.com/PyGithub/PyGithub/commit/0b8435fc>`_)

Bug Fixes
^^^^^^^^^

* Revert having allowed values for add_to_collaborators (`2905 <https://github.com/PyGithub/PyGithub/pull/2905>`_) (`b542438e <https://github.com/PyGithub/PyGithub/commit/b542438e>`_)

Maintenance
^^^^^^^^^^^

* Fix imports in authentication docs (`2923 <https://github.com/PyGithub/PyGithub/pull/2923>`_) (`e3d36535 <https://github.com/PyGithub/PyGithub/commit/e3d36535>`_)
* CI: add docformatter to precommit (`2614 <https://github.com/PyGithub/PyGithub/pull/2614>`_) (`96ad19ae <https://github.com/PyGithub/PyGithub/commit/96ad19ae>`_)
* Add .swp files to gitignore (`2903 <https://github.com/PyGithub/PyGithub/pull/2903>`_) (`af529abe <https://github.com/PyGithub/PyGithub/commit/af529abe>`_)
* Fix instructions building docs in CONTRIBUTING.md (`2900 <https://github.com/PyGithub/PyGithub/pull/2900>`_) (`cd8e528d <https://github.com/PyGithub/PyGithub/commit/cd8e528d>`_)
* Explicitly name the modules built in pyproject.toml (`2894 <https://github.com/PyGithub/PyGithub/pull/2894>`_) (`4d461734 <https://github.com/PyGithub/PyGithub/commit/4d461734>`_)

2.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``:

.. code-block:: python

commits = repo.compare("v0.6", "v0.7").commits
no_of_commits = len(commits)

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:

.. code-block:: 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. (`2863 <https://github.com/PyGithub/PyGithub/pull/2863>`_) (`49d07d16 <https://github.com/PyGithub/PyGithub/commit/49d07d16>`_)
* Add support for issue reactions summary (`2866 <https://github.com/PyGithub/PyGithub/pull/2866>`_) (`cc4c5269 <https://github.com/PyGithub/PyGithub/commit/cc4c5269>`_)
* Support for DependabotAlert APIs (`2879 <https://github.com/PyGithub/PyGithub/pull/2879>`_) (`14af7051 <https://github.com/PyGithub/PyGithub/commit/14af7051>`_)
* Derive GraphQL URL from base_url (`2880 <https://github.com/PyGithub/PyGithub/pull/2880>`_) (`d0caa3c3 <https://github.com/PyGithub/PyGithub/commit/d0caa3c3>`_)
* Make ``Repository.compare().commits`` return paginated list (`2882 <https://github.com/PyGithub/PyGithub/pull/2882>`_) (`2d284d1e <https://github.com/PyGithub/PyGithub/commit/2d284d1e>`_)
* Add missing branch protection fields (`2873 <https://github.com/PyGithub/PyGithub/pull/2873>`_) (`e47c153b <https://github.com/PyGithub/PyGithub/commit/e47c153b>`_)
* Add ``include_all_branches`` to ``create_repo_from_template`` of ``AuthenticatedUser`` and ``Organization`` (`2871 <https://github.com/PyGithub/PyGithub/pull/2871>`_) (`34c4642e <https://github.com/PyGithub/PyGithub/commit/34c4642e>`_)
* Add and update organisation dependabot secrets (`2316 <https://github.com/PyGithub/PyGithub/pull/2316>`_) (`603896f4 <https://github.com/PyGithub/PyGithub/commit/603896f4>`_)
* Add missing params to ``Organization.create_repo`` (`2700 <https://github.com/PyGithub/PyGithub/pull/2700>`_) (`9c61a2a4 <https://github.com/PyGithub/PyGithub/commit/9c61a2a4>`_)
* Update allowed values for ``Repository`` collaborator permissions (`1996 <https://github.com/PyGithub/PyGithub/pull/1996>`_) (`b5b66da8 <https://github.com/PyGithub/PyGithub/commit/b5b66da8>`_)
* Support editing PullRequestReview (`2851 <https://github.com/PyGithub/PyGithub/pull/2851>`_) (`b1c4c561 <https://github.com/PyGithub/PyGithub/commit/b1c4c561>`_)
* Update attributes after calling ``PullRequestReview.dismiss`` (`2854 <https://github.com/PyGithub/PyGithub/pull/2854>`_) (`6f3d714c <https://github.com/PyGithub/PyGithub/commit/6f3d714c>`_)
* Add ``request_cve`` on ``RepositoryAdvisories`` (`2855 <https://github.com/PyGithub/PyGithub/pull/2855>`_) (`41b617b7 <https://github.com/PyGithub/PyGithub/commit/41b617b7>`_)
* Filter collaborators of a repository by permissions (`2792 <https://github.com/PyGithub/PyGithub/pull/2792>`_) (`702c127a <https://github.com/PyGithub/PyGithub/commit/702c127a>`_)
* Set pull request to auto merge via GraphQL API (`2816 <https://github.com/PyGithub/PyGithub/pull/2816>`_) (`232df79a <https://github.com/PyGithub/PyGithub/commit/232df79a>`_)
* Support Environment Variables and Secrets (`2848 <https://github.com/PyGithub/PyGithub/pull/2848>`_) (`7df97398 <https://github.com/PyGithub/PyGithub/commit/7df97398>`_)
* Update workflow.get_runs & pullrequest.add_to_assignees function signature (`2799 <https://github.com/PyGithub/PyGithub/pull/2799>`_) (`26eedbb0 <https://github.com/PyGithub/PyGithub/commit/26eedbb0>`_)
* Add ``GithubObject.last_modified_datetime`` to have ``last_modified`` as a ``datetime`` (`2772 <https://github.com/PyGithub/PyGithub/pull/2772>`_) (`e7ce8189 <https://github.com/PyGithub/PyGithub/commit/e7ce8189>`_)
* Add support for global advisories and unify some shared logic with repository advisories (`2702 <https://github.com/PyGithub/PyGithub/pull/2702>`_) (`c8b4fcbe <https://github.com/PyGithub/PyGithub/commit/c8b4fcbe>`_)
* Add internal as valid Repository visibility value (`2806 <https://github.com/PyGithub/PyGithub/pull/2806>`_) (`d4a5a40f <https://github.com/PyGithub/PyGithub/commit/d4a5a40f>`_)
* Add support for issue comments reactions summary (`2813 <https://github.com/PyGithub/PyGithub/pull/2813>`_) (`67397491 <https://github.com/PyGithub/PyGithub/commit/67397491>`_)

Bug Fixes
^^^^^^^^^

* Add a bunch of missing urllib.parse.quote calls (`1976 <https://github.com/PyGithub/PyGithub/pull/1976>`_) (`13194be2 <https://github.com/PyGithub/PyGithub/commit/13194be2>`_)
* Fix Variable and Secret URL (`2835 <https://github.com/PyGithub/PyGithub/pull/2835>`_) (`aa763431 <https://github.com/PyGithub/PyGithub/commit/aa763431>`_)

Maintenance
^^^^^^^^^^^

* Update the class name for NetrcAuth in the examples (`2860 <https://github.com/PyGithub/PyGithub/pull/2860>`_) (`2f44b2e8 <https://github.com/PyGithub/PyGithub/commit/2f44b2e8>`_)
* Move build to PEP517 (`2800 <https://github.com/PyGithub/PyGithub/pull/2800>`_) (`c589bf9e <https://github.com/PyGithub/PyGithub/commit/c589bf9e>`_)
* Use new type assert functions in ``Repository`` (`2798 <https://github.com/PyGithub/PyGithub/pull/2798>`_) (`2783e671 <https://github.com/PyGithub/PyGithub/commit/2783e671>`_)
* PyTest: Move config to pyproject.toml (`2859 <https://github.com/PyGithub/PyGithub/pull/2859>`_) (`61fb728b <https://github.com/PyGithub/PyGithub/commit/61fb728b>`_)
* codespell: ignore-words-list (`2858 <https://github.com/PyGithub/PyGithub/pull/2858>`_) (`dcf6d8a1 <https://github.com/PyGithub/PyGithub/commit/dcf6d8a1>`_)
* Improve fix-headers.py script (`2728 <https://github.com/PyGithub/PyGithub/pull/2728>`_) (`a48c37fa <https://github.com/PyGithub/PyGithub/commit/a48c37fa>`_)
* Remove dependency on python-dateutil (`2804 <https://github.com/PyGithub/PyGithub/pull/2804>`_) (`ab131a2f <https://github.com/PyGithub/PyGithub/commit/ab131a2f>`_)
* CI: update precommit & apply (`2600 <https://github.com/PyGithub/PyGithub/pull/2600>`_) (`d92cfba2 <https://github.com/PyGithub/PyGithub/commit/d92cfba2>`_)
* Fix parameter order according to Version 2.1.0 (`2786 <https://github.com/PyGithub/PyGithub/pull/2786>`_) (`dc37d5c1 <https://github.com/PyGithub/PyGithub/commit/dc37d5c1>`_)
* Add missing GitHub classes to docs (`2783 <https://github.com/PyGithub/PyGithub/pull/2783>`_) (`9af9b6e5 <https://github.com/PyGithub/PyGithub/commit/9af9b6e5>`_)
* Fix mypy error with urllib3>=2.0.0a1 by ignoring (`2779 <https://github.com/PyGithub/PyGithub/pull/2779>`_) (`64b1cdea <https://github.com/PyGithub/PyGithub/commit/64b1cdea>`_)

Page 1 of 17

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.