NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #424 most downloaded on PyPI
Use the full Github API v3
Last release 1 months ago
20 Aug 2026
Ships fairly regularly
a new release about every 3 months
Nearly every release is documented
notes for 56 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
109 releases · first in 2012
Remove deprecated usage of lazy argument in get_repo test calls by @comNayaK in #3555
Python 3.9 reached its end-of-life October 31, 2025. Support has been removed with this release.
incomplete_results property to PaginatedList by @Felixoid in #3396WorkflowRun.get_attempt and Repository.get_workflow_job functions by @cecheta in #3401head_repo when creating pull request by @shannon in #3479max_rate_limit_wait to GithubRetry to cap rate limit backoff by @tanistheta in #3540return_run_details parameter to Workflow.create_dispatch by @SebastienSyd in #3471SecurityAndAnalysis by @EnricoMi in #3503OrganizationVariable.edit() and OrganizationSecret.edit() by @Krishnachaitanyakc in #3472GithubException.__str__ decoding bytes data by @SAY-5 in #3494OrganizationVariable.value by properly using base class by @EnricoMi in #3507PaginatedList.totalCount by @Noethix55555 in #3518base_url with trailing slash by @Noethix55555 in #3537WorkflowRun schema suggestion by @EnricoMi in #3559state / code_verifier parameters by @TheoGoudout in #3440values_editable_by param by @chawlajay9 in #3548OrganizationSecret.edit() to seal the value and use PUT by @Noethix55555 in #3529CompletableGithubObject by @EnricoMi in #3432sphinx-copybutton for code blocks by @DivyanshiGautam31 in #3493mypy Python version to 3.12 by @EnricoMi in #3505@overload to type get_user by @xmo-odoo in #3502OrganizationVariable by @EnricoMi in #3508lazy argument in get_repo test calls by @comNayaK in #3555Full Changelog: v2.9.1...v2.10.0
One column per quarter.
Python 3.9 reached its end-of-life October 31, 2025. Support has been removed with this release.
Add incomplete_results property to PaginatedList (#3396) (7806e7dcc)
Add WorkflowRun.get_attempt and Repository.get_workflow_job functions (#3401) (fdf9ed869)
Add support for head_repo when creating pull request (#3479) (8ddfd6b11)
Add max_rate_limit_wait to GithubRetry to cap rate limit backoff (#3540) (8b50a098f)
Add return_run_details parameter to Workflow.create_dispatch (#3471) (162ce9d0e)
Fix duplicated URL in OrganizationVariable.edit() and OrganizationSecret.edit() (#3472) (a2e76eb8e)
Fix GithubException.__str__ decoding bytes data (#3494) (7a3b22ed6)
Fixing OrganizationVariable.value by properly using base class (#3507) (39a7464ff)
Parse only the query string for PaginatedList.totalCount (#3518) (645d2a2e8)
Encode boolean query parameters as lowercase (#3516) (f4e29299e)
Fix doubled slash in request path for base_url with trailing slash (#3537) (c15572f23)
Fix OAuth2 authorization state / code_verifier parameters (#3440) (4785224bc)
Allow creating custom property with values_editable_by param (#3548) (134f38a63)
Fix OrganizationSecret.edit() to seal the value and use PUT (#3529) (4f8674b72)
Add support for Python 3.15 and drop EOL 3.9 (#3551) (5e2de3144)
Move self-link awareness into CompletableGithubObject (#3432) (92ec3fab0)
Add documentation for agents, add Claude skills (#3509) (28f140d10)
Add sphinx-copybutton for code blocks (#3493)
Add support to OpenAPI script for applying schema to methods (#3374) (b7a6d2324)
Improve OpenAPI apply properties and methods (#3495)
Fix OpenAPI method verb detection (#3496)
Bump mypy Python version to 3.12 (#3505)
Add OpenAPI script filename option to create class (#3512)
Make OpenAPI index file deterministic (#3514)
CI: Upgrade Github actions, pin to commit SHAs by @EnricoMi with @Copilot in https://github.com/PyGithub/PyGithub/pull/3552 (#CI: Upgrade Github actions, pin to commit SHAs by @EnricoMi with @Copilot in https://github.com/PyGithub/PyGithub/pull/3552)
Use simple str contains instead of re in requester 401 OTP check (#3541) (675468209)
Remove deprecated usage of lazy argument in get_repo test calls (#3555) (b03e68366)
docs: add example for uploading multiple files in a single commit (#3545) (c63d09e26)
Full Changelog: https://github.com/PyGithub/PyGithub/compare/v2.9.1...v2.10.0
Fix getting release by tag in lazy mode by @EnricoMi in #3469
Method delete of Reaction is deprecated, use IssueComment.delete_reaction , PullRequestComment.delete_reaction , CommitComment.delete_reaction or Issu…
The notion of lazy objects has been added to some PyGithub classes in version 2.6.0. This release now makes all CompletableGithubObjects optionally lazy (if useful). See #3403 for a complete list.
In lazy mode, getting a PyGithub object does not send a request to the GitHub API. Only accessing methods and properties sends the necessary requests to the GitHub API:
# Use lazy mode
g = Github(auth=auth, lazy=True)
# these method calls do not send requests to the GitHub API
user = g.get_user("PyGithub") # get the user
repo = user.get_repo("PyGithub") # get the user's repo
pull = repo.get_pull(3403) # get a known pull request
issue = pull.as_issue() # turn the pull request into an issue
# these method and property calls send requests to Github API
issue.create_reaction("rocket") # create a reaction
created = repo.created_at # get property of lazy object repo
# once a lazy object has been fetched, all properties are available (no more requests)
licence = repo.licenseAll PyGithub classes that implement CompletableGithubObject support lazy mode (if useful). This is only useful for classes that have methods creating, changing, or getting objects.
By default, PyGithub objects are not lazy.
The GitHub API has the "feature" of paginated properties. Some objects returned by the API have a property that allows for pagination. Fetching subsequent pages of that property means fetching the entire object (with all other properties) and the specified page of the paginated property. Iterating over the paginated property means fetching all other properties multiple times. Fortunately, the allowed size of each page (per_page is usually 300, in contrast to the "usual" per_page maximum of 100).
Objects with paginated properties:
This PR makes iterating those paginated properties use the configured per_page setting.
It further allows to specify an individual per_page when either retrieving such objects, or fetching paginated properties.
See Classes with paginated properties for details.
Python 3.8 reached its end-of-life September 6, 2024. Support has been removed with this release.
delete of Reaction is deprecated, use IssueComment.delete_reaction,PullRequestComment.delete_reaction, CommitComment.delete_reaction or Issue.delete_reaction instead.Issue.assignee and parameter Issue.edit(assignee=…) are deprecated,Issue.assignees and Issue.edit(assignees=…) instead.Organization.edit_hook is deprecated, use Organization.get_hook(id).edit(…) instead.Organization.get_hook(id) to fetch the Hook object from Github API,Github(…, lazy=True).get_organization(…).get_hook(id).edit(…)Team.add_to_members and Team.remove_from_members are deprecated,Team.add_membership or Team.remove_membership instead.api. by @EnricoMi in #3419throw option to Workflow.create_dispatch to raise exceptions by @dblanchette in #2966GET url or _links.self as object url by @EnricoMi in #3421type parameter to get_issues by @nrysk in #3381PaginatedList.totalCount returning 0 with GitHub deprecation notices by @odedperezcodes in #3382Reaction.delete by @iarspider in #3435Issue.assignee by @EnricoMi in #3366Orginization.edit_hook by @EnricoMi in #3404Team.add_to_members and Team.remove_from_members by @EnricoMi in #3368Full Changelog: v2.8.0...v2.9.0
The notion of lazy objects has been added to some PyGithub classes in version 2.6.0. This release now makes all CompletableGithubObjects optionally lazy (if useful). See #3403 for a complete list.
In lazy mode, getting a PyGithub object does not send a request to the GitHub API. Only accessing methods and properties sends the necessary requests to the GitHub API:
# Use lazy mode
g = Github(auth=auth, lazy=True)
# these method calls do not send requests to the GitHub API
user = g.get_user("PyGithub") # get the user
repo = user.get_repo("PyGithub") # get the user's repo
pull = repo.get_pull(3403) # get a known pull request
issue = pull.as_issue() # turn the pull request into an issue
# these method and property calls send requests to Github API
issue.create_reaction("rocket") # create a reaction
created = repo.created_at # get property of lazy object repo
# once a lazy object has been fetched, all properties are available (no more requests)
licence = repo.license
All PyGithub classes that implement CompletableGithubObject support lazy mode (if useful). This is only useful for classes that have methods creating, changing, or getting objects.
By default, PyGithub objects are not lazy.
The GitHub API has the "feature" of paginated properties. Some objects returned by the API have a property that allows for pagination. Fetching subsequent pages of that property means fetching the entire object (with all other properties) and the specified page of the paginated property. Iterating over the paginated property means fetching all other properties multiple times. Fortunately, the allowed size of each page (per_page is usually 300, in contrast to the "usual" per_page maximum of 100).
Objects with paginated properties:
Commit.files
Comparison.commits
EnterpriseConsumedLicenses.users
This PR makes iterating those paginated properties use the configured per_page setting.
It further allows to specify an individual per_page when either retrieving such objects, or fetching paginated properties.
See Classes with paginated properties for details.
Python 3.8 reached its end-of-life September 6, 2024. Support has been removed with this release.
Method delete of Reaction is deprecated, use IssueComment.delete_reaction, PullRequestComment.delete_reaction, CommitComment.delete_reaction or Issue.delete_reaction instead.
Method Issue.assignee and parameter Issue.edit(assignee=…) are deprecated, use Issue.assignees and Issue.edit(assignees=…) instead.
Method Organization.edit_hook is deprecated, use Organization.get_hook(id).edit(…) instead. If you need to avoid Organization.get_hook(id) to fetch the Hook object from Github API, use a lazy Github instance:
Github(…, lazy=True).get_organization(…).get_hook(id).edit(…)
Methods Team.add_to_members and Team.remove_from_members are deprecated, use Team.add_membership or Team.remove_membership instead.
Consider per-page settings when iterating paginated properties (#3377) (b1a9b7e2a)
Add Secret Scanning Alerts and Improve Code Scan Alerts (#3307) (646190988)
Allow for enterprise base url prefixed with api. (#3419) (61dcf49d3)
Add throw option to Workflow.create_dispatch to raise exceptions (#2966) (19e1c5032)
Use GET url or _links.self as object url (#3421) (3716bab10)
Add support for type parameter to get_issues (#3381) (22263b72f)
Align implemented paths with OpenAPI spec (#3413) (0ede65793)
Fix PaginatedList.totalCount returning 0 with GitHub deprecation notices (#3382) (c4ec16a18)
Use default type if known type is not supported (#3365) (f5f9756a1)
Deprecate Team.add_to_members and Team.remove_from_members (#3368) (78050d397)
Improve error message on replay data mismatch (#3385) (#3386) (8be9c5cb9) (927cf227a)
Restrict PyPi release workflow permissions (#3418) (ae23d6075)
Bump dawidd6/action-download-artifact from 3.0.0 to 3.1.4 (#3282) (5db532b87)
Bump actions/upload-artifact from 4 to 5 (#3394) (8b87fd1c8)
Bump actions/download-artifact from 5 to 6 (#3393) (511f3b3f4)
Merge changelog updates from v2.8 release branch (#3367) (4a353f730)
Use default type if known type is not supported by @EnricoMi in #3365
Point deprecation warnings to the caller code rather than inner class by @xmo-odoo in #3275
Repository.get_automated_security_fixes method by @zstyblik in #3303Issue class with API spec by @EnricoMi in #3338NamedUser | Organization | Enterprise by @EnricoMi in #3224Enterprise class with API spec by @EnricoMi in #3342GitReleaseAsset class with API spec by @EnricoMi in #3343Team repo methods by @EnricoMi in #3356Repository.get_git_ref by @csalerno-asml in #2992GitRelease.name, deprecate GitRelease.title by @EnricoMi in #3346"COMMENT" as the default event for create_review by @eddie-santos in #3078maintainers in Organization.create_team by @interifter in #3291PaginatedList by @sam93210 in #3039github_actions label to Maintenance section by @EnricoMi in #3357Full Changelog: v2.7.0...v2.8.0
Fix connection pooling to improve connection performance (#3289)
Add Repository.get_automated_security_fixes method (#3303) (22048d83)
Return more union classes like NamedUser | Organization | Enterprise (#3224) (aea64148)
Sync many class with OpenAPI spec (#3344)
Point deprecation warnings to the caller code rather than inner class (#3275) (99bb5270)
Allow for repo strings in all Team repo methods (#3356) (3234a21f)
Fix GitRelease.name, deprecate GitRelease.title (#3346) (fb51957f)
Remove "COMMENT" as the default event for create_review (#3078) (8494da5c)
Fix GitHub breaking API change of maintainers in Organization.create_team (#3291) (17bc4df4)
Add check to OpenAPI script to check doc-string verbs (#3332) (3efde77d)
Add config to OpenAPI script to ignore schemas (#3334) (0478d33b)
Add suggest and create method feature to OpenAPI script (#3318)
Add manual workflow to fix auto-fixable issues (#3351) (0e6317d9)
Bump actions/download-artifact from 4 to 5 (#3330) (5206d231)
Use default per-page const in PaginatedList (#3039) (cffda3d7)
Add union class support to OpenAPI script (#3354) (4a6bba93)
Add github_actions label to Maintenance section (#3357) (0c31f848)
Add warning about Checks API in doc-strings (#3229) (12d8d10c)
Replace deprecated.deprecated() with typing_extensions.deprecated() by @lazka in #3255
Github.get_rate_limit() now returns RateLimitOverview rather than RateLimit (#3205).Code like
gh.get_rate_limit().core.remainingshould be replaced with
gh.get_rate_limit().resources.core.remainingGitTag.verification now returns GitCommitVerification rather than dict[str, Any] (#3226).Code like
tag.verification["reason"]
tag.verification.get("reason")should be replaced with
tag.verification.reasonOrganizationInvitation by @EnricoMi in #3207RepositoryAdvisory tests with OpenAPI spec by @EnricoMi in #3215ProjectColumn and ProjectCard tests with OpenAPI spec by @EnricoMi in #3216CopilotSeat class with API spec by @EnricoMi in #3232HookDeliverySummary class with API spec by @EnricoMi in #3233RequiredPullRequestReviews class with API spec by @EnricoMi in #3234RequiredStatusChecks class with API spec by @EnricoMi in #3236Team class with API spec by @EnricoMi in #3237deprecated.deprecated() with typing_extensions.deprecated() by @lazka in #3255prevent_self_review property to Repository.createEnvironment by @gopidesupavan in #3246PullRequest.get_issue_timeline method by @kukarkinmm in #3259reversed() on PaginatedList by @mfocko in #3260Requester exception handling by @jsmolar in #3299delete_self_hosted_runner to Organization by @uncleDecart in #3306Auth classes by @EnricoMi in #3211Deployment, remove message attribute by @EnricoMi in #3223CodeSecurityConfigRepository returned by get_repos_for_code_security_config by @EnricoMi in #3219Branch.get_required_status_checks return type by @EnricoMi in #3235multi_select and true_false options to CustomProperty.value_type by @gfog-floqast in #3173TimingData.run_duration_ms optional by @LifeLex in #3268AppAuth.private_key in changelog by @EnricoMi in #3212HookDeliveryRequest and …Response private headers fields by @EnricoMi in #3221PaginatedList[int] by @EnricoMi in #3240Organization.get_repos_for_code_security_config test by @billnapier in #3239TimingData by @EnricoMi in #3206Full Changelog: v2.6.0...v2.7.0
Method Github.get_rate_limit() now returns RateLimitOverview rather than RateLimit (#3205) (56ee057a).
Code like
gh.get_rate_limit().core.remaining
should be replaced with
gh.get_rate_limit().resources.core.remaining
Method GitTag.verification now returns GitCommitVerification rather than dict[str, Any] (#3226) (850932cc).
Code like
tag.verification["reason"]
tag.verification.get("reason")
should be replaced with
tag.verification.reason
Methods dismissal_users and dismissal_teams of RequiredPullRequestReviews are deprecated, use dismissal_restrictions.users and dismissal_restrictions.teams instead.
Refactor search results into separate classes (#3204) (938f80b1)
Sync RepositoryAdvisory tests with OpenAPI spec (#3215) (6b77787a)
Sync ProjectColumn and ProjectCard tests with OpenAPI spec (#3216) (e91c8379)
Sync HookDeliverySummary class with API spec (#3233) (bc1c5375)
Sync RequiredPullRequestReviews class with API spec (#3234) (2f991c48)
Sync RequiredStatusChecks class with API spec (#3236) (0474507f)
Replace deprecated.deprecated() with typing_extensions.deprecated() (#3255) (1ac8da70)
fix(CodeScanAlert): add missing attributes (#3274) (bdc58c38)
Adding prevent_self_review property to Repository.createEnvironment (#3246) (e2a05ff2)
Add PullRequest.get_issue_timeline method (#3259) (23a5bad3)
Support built-in reversed() on PaginatedList (#3260) (95f015c8)
Relax 404 condition in Requester exception handling (#3299) (e7110bf4)
Fix broken pickle support for Auth classes (#3211) (a1f328df)
Remove schema from Deployment, remove message attribute (#3223) (e91713e9)
Add CodeSecurityConfigRepository returned by get_repos_for_code_security_config (#3219) (dbb32eed)
Fix Branch.get_required_status_checks return type (#3235) (66a3cc1c)
Adds multi_select and true_false options to CustomProperty.value_type (#3173) (f51a3f48)
Fix url encoding of strings with slashes in URLs (#3263) (da73fc8a)
Fix side-effect when removing Authorization key from headers (#3313) (0378ccee)
Normalize App ID to String & Enhance JWT Issuer Verification (#3272) (01196d67)
Add delete_self_hosted_runner to Organization (#3306)
Mention removal of AppAuth.private_key in changelog (#3212) (fae8f25d)
Rename HookDeliveryRequest and …Response private headers fields (#3221) (13236d5d)
Move all Python files to future annotations (#3241) (3602345a)
Fix return type of PaginatedList[int] (#3240)
Add Organization.get_repos_for_code_security_config test (#3239) (4d45a4f4)
Fix incorrect deprecated import by @EnricoMi in #3225
Auth classes by @EnricoMi in #3211Deployment, remove message attribute by @EnricoMi in #3223CodeSecurityConfigRepository returned by get_repos_for_code_security_config by @EnricoMi in #3219GitTag.verification return GitCommitVerification by @EnricoMi in #3226Full Changelog: v2.6.0...v2.6.1
Rework Views and Clones by @EnricoMi in #3168 : View and clones traffic information returned by Repository.get_views_traffic and Repository.get_clones
Views and Clones by @EnricoMi in #3168:Repository.get_views_traffic and Repository.get_clones_trafficdict, with all information that used to be provided by the dict:Code like
repo.get_views_traffic().["views"].timestamp
repo.get_clones_traffic().["clones"].timestampshould be replaced with
repo.get_views_traffic().views.timestamp
repo.get_clones_traffic().clones.timestampOrganizationCustomProperty.respository_id renamed to OrganizationCustomProperty.repository_id.Repository.merge_upstream method by @Felixoid in #3175required_status_checks.checks object by @treee111 in #2884start_side argument of PullRequest.create_review_comment from int to str by @ryanpeach in #3170Repository.get_contents redirection by @EnricoMi in #3183conclusion nullable in WorkflowJob.py by @Apakottur in #3171Github.get_organization argument login to org by @blyedev in #3187NotSet an Attribute[Any] by @EnricoMi in #3057responses instead of httpretty in tests by @majamassarini in #3087Full Changelog: v2.5.0...v2.6.0
Rework Views and Clones (#3168) (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
repo.get_views_traffic().["views"].timestamp
repo.get_clones_traffic().["clones"].timestamp
should be replaced with
repo.get_views_traffic().views.timestamp
repo.get_clones_traffic().clones.timestamp
Add GitCommitVerification class (#3028) (822e6d71):
Changes the return value of GitTag.verification and GitCommit.verification from dict to GitCommitVerification.
Code like
tag.verification["reason"]
commit.verification["reason"]
should be replaced with
tag.verification.reason
commit.verification.reason
Property AppAuth.private_key has been removed (#3065) (36697b22)
Property OrganizationCustomProperty.respository_id renamed to OrganizationCustomProperty.repository_id.
Add Support for GitHub Copilot Seat Management in Organizations (#3082) (b5f8f078)
Support updating pull request draft status (#3104) (5ec7b775)
Add transfer ownership method to Repository (#3091) (b3ccd105)
Add support for managing Code Security Configurations (#3095) (ee5d1da3)
Allow for private_key / sign function in AppAuth (#3065) (36697b22)
Update RateLimit object with all the new categories GitHub added. (#3096) (152429d9)
Add support for make-latest to create_git_release and create_git_tag_and_release (#3067) (8ed5635f)
Add branch protection support for required_status_checks.checks object (#2884) (764540d3)
Use id and tree_id from simple-commit to populate GitCommit.sha and GitCommit.tree (#3167) (04887640)
Use message of response in GithubException (#3185) (bd35f7dd)
Sync BranchProtection class with API spec (#3110) (936b3ef5)
Sync CheckRunAnnotation class with API spec (#3112) (29eb0f58)
Sync DeploymentStatus class with API spec (#3122) (b3a06f07)
Sync InstallationAuthorization class with API spec (#3136) (649de20b)
Sync IssuePullRequest class with API spec (#3143) (1836b073)
Sync OrganizationCustomProperty class with API spec (#3151) (519b61b0)
Sync PullRequestComment class with API spec (#3154) (e262c2ee)
Sync SecurityAndAnalysis class with API spec (#3158) (65546abd)
Sync SelfHostedActionsRunner class with API spec (#3159) (ea4a8d1d)
Patch httpretty socket for latest urllib3 release (#3102) (81f8f05b)
Change start_side argument of PullRequest.create_review_comment from int to str (#3170) (f814de7d)
Create Review Request - transform string params to a list (#3099) (8aef11c0)
Make conclusion nullable in WorkflowJob.py (#3171) (8d8eb06d)
Rename Github.get_organization argument login to org (#3187) (9e3cf209)
Make NotSet an Attribute[Any] (#3057)
Sort attributes and properties in GitHub classes (#3105) (f3986b57)
Preparations for maintaining Github classes by code (#3106) (842a1b02)
Use responses instead of httpretty in tests (#3087) (9b293d44)
[CI] Publish test results (#3195)
Link Commit to correct upstream documentation (#2936) (4d307a7c)
Replace release drafter with Github release note generation (#3196) (6f9a2983)
Parameters of method github.Requester.Requester.graphql_named_mutation have been renamed:
github.Requester.Requester.graphql_named_mutation have been renamed:
variables renamed to mutation_inputoutput renamed to output_schemaoutput has been removedRepositoryDiscussion powered by GraphQL API @EnricoMi (#3048)Repository.get_discussion() to get a single Discussion @tiangolo (#3072)actor property to WorkflowRun @gbhand (#2764)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
Make pagination work with GraphQL response data (#3047) (cd30e379)
Add RepositoryDiscussion powered by GraphQL API (#3048) (29359f3c)
Add Repository.get_discussion() to get a single Discussion (#3072) (44120b1e)
Fix requesting urls containing parameters with parameters dict (#2929) (e1d67ada)
PullRequest.delete_branch: fix the remaining pull requests check (#3063) (72fa6278)
Allow custom authentication @kliem
has_discussions to AuthenticatedUser and Repository classes @cwlls (#3020)SecurityAndAnalysis attributes @squatched (#3025)dict type to add_attribute script @jackylamhk (#2977)make_latest to GitRelease.update_release @treee111 (#2888)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:
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:
files = repo.get_commit("7266e812ed2976ea36a4303edecfe5d75522343f").files
no_of_files = files.totalCount
Removed support for Python 3.7.
Add has_discussions to AuthenticatedUser and Repository classes (#3020) (75224167)
Update more SecurityAndAnalysis attributes (#3025) (fa168279)
Implement support for re-running only failed workflow jobs. (#2983) (23e87563)
Add possibility to mark a thread/notification as done (#2985) (5ba24379)
Add "pull_request_review_id" to PullRequestComment object (#3000) (6a59cf82)
Add minimize and unminimize functions for IssueComment class (#3005) (09c4f58e)
Support Organization/Repository custom properties (#2968) (c5e6b702)
Allow for deleting and restoring branch associated with PR (#1784) (4ba1e412)
Add "archived_at" to Organization object. (#2974) (cc766a6f)
Add added_by and last_used attributes to RepositoryKey (#2952) (5dffa64d)
Add make_latest to GitRelease.update_release (#2888) (60136105)
Support OAuth for enterprise (#2780 _) (e4106e00 _)
Create release with optional name and message when generate_release_notes is true (#2868) (d65fc30d)
Add created and check_suite_id filter for Repository WorkflowRuns (#2891) (c788985c)
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:
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:
commits = repo.compare("v0.6", "v0.7").commits
no_of_commits = commits.totalCount
Add support to call GraphQL API
Add parent_team_id, maintainers and notification_setting for creating and updating teams. (#2863) (49d07d16)
Make Repository.compare().commits return paginated list (#2882) (2d284d1e)
Add include_all_branches to create_repo_from_template of AuthenticatedUser and Organization (#2871) (34c4642e)
Add and update organisation dependabot secrets (#2316) (603896f4)
Add missing params to Organization.create_repo (#2700) (9c61a2a4)
Update allowed values for Repository collaborator permissions (#1996) (b5b66da8)
Update attributes after calling PullRequestReview.dismiss (#2854) (6f3d714c)
Filter collaborators of a repository by permissions (#2792) (702c127a)
Set pull request to auto merge via GraphQL API (#2816) (232df79a)
Support Environment Variables and Secrets (#2848) (7df97398)
Update workflow.get_runs & pullrequest.add_to_assignees function signature (#2799) (26eedbb0)
Add GithubObject.last_modified_datetime to have last_modified as a datetime (#2772) (e7ce8189)
Add support for global advisories and unify some shared logic with repository advisories (#2702) (c8b4fcbe)
Add internal as valid Repository visibility value (#2806) (d4a5a40f)
Add support for issue comments reactions summary (#2813) (67397491)
Require urllib 1.26.0 or greater (#2774 _) (001c0852 _)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Safely coerce responseHeaders to int (#2697 _) (adbfce92 _)
Breaking Changes ^^^^^^^^^^^^^^^^
This release introduces new way of authentication. All authentication-related arguments github.Github(login_or_token=…, password=…, jwt=…, app_auth=…) and github.GithubIntegration(integration_id=…, private_key=…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…) are replaced by a single auth=… argument. Module github.Auth provides classes for all supported ways of authentication: Login, Token, AppAuth, AppAuthToken, AppInstallationAuth, AppUserAuth. Old arguments are deprecated but continue to work. They are scheduled for removal for version 2.0 release.
This project has decided to move all typing information from .pyi files into the respective .py source files. This will happen gradually over time.
The position argument in github.PullRequest.create_review_comment(position=…) has been renamed to line. This breaks user code that calls create_review_comment with keyword argument position. Call with line=… instead. Calling this method with positional arguments is not breaking.
The jwt_expiry, jwt_issued_at and jwt_algorithm arguments in github.GithubIntegration() have changed their position. User code calling github.GithubIntegration(…) with these arguments as positional arguments breaks. Please use keyword arguments: github.GithubIntegration(…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…).
The since argument in github.PullRequest.get_review_comments(…) has changed position.`` User code calling github.PullRequest.get_review_comments(…) with this argument as positional argument breaks. Please use keyword argument: github.PullRequest.get_review_comments(since=…).
The use of github.Github(login_or_token=…) is deprecated, use github.Github(auth=github.Auth.Login(…)) or github.Github(auth=github.Auth.Token(…)) instead.
The use of github.Github(password=…) is deprecated, use github.Github(auth=github.Auth.Login(…)) instead.
The use of github.Github(jwt=…) is deprecated, use github.Github(auth=github.AppAuth(…)) or github.Github(auth=github.AppAuthToken(…)) instead.
The use of github.Github(app_auth=…) is deprecated, use github.Github(auth=github.Auth.AppInstallationAuth(…)) instead.
The use of github.GithubIntegration(integration_id=…, private_key=…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…) is deprecated, use github.GithubIntegration(auth=github.Auth.AppAuth(…)) instead.
The use of github.GithubIntegration.create_jwt is deprecated, use github.Github(auth=github.Auth.AppAuth), github.Auth.AppAuth.token or github.Auth.AppAuth.create_jwt(expiration) instead.
The use of AppAuthentication is deprecated, use github.Auth.AppInstallationAuth instead.
The use of github.Github.get_app() without providing argument slug is deprecated, use github.GithubIntegration(auth=github.Auth.AppAuth(…)).get_app().
Test and fix UTC issue with AppInstallationAuth (#2561) (ff3b80f8)
Make Requester.__createException robust against missing message and body (#2159) (7be3f763)
Fix auth issues with Installation.get_repos (#2547) (64075120)
Raise error on unsupported redirects, log supported redirects (#2524) (17cd0b79)
Fix GithubIntegration that uses expiring jwt (#2460) (5011548c)
Add expiration argument back to GithubIntegration.create_jwt (#2439) (822fc05c)
Add crypto extras to pyjwt, which pulls in cryptogaphy package (#2443) (554b2b28)
Move CI to Python 3.11 release and 3.12 dev (#2434) (e414c322)
Add support for get_app() with App authentication (#2549) (6d4b6d14)
Implement AppUserAuth for Github App user tokens (#2546) (f291a368)
Add support for new RepositoryAdvisories API :tada: (#2483) (daf62bd4)
Make MainClass.get_app return completed GithubApp when slug is given (#2543) (84912a67)
Add authentication classes, move auth logic there (#2528) (fc2d0e15)
Add sort order and direction for getting comments (#2544) (a8e7c423)
Add name filter to Repository.get_artifacts() (#2459) (9f52e948)
Add name, display_title and path attributes to WorkflowRun (#2397) (10816389)
Add query check_suite_id integer to Workflow.get_runs (#2466) (a4854519)
Add generate_release_notes parameter to create_git_release and create_git_tag_and_release (#2417) (49b3ae16)
Add example for Pull Request comments to documentation (#2390) (c2f12bdc)
Add allow_auto_merge support to Repository (#2477) (8c4b9465)
Add artifact_id argument to Repository.get_artifact() (#2458) (4fa0a5f3)
Add allow_update_branch option to Organization (#2465) (bab4180f)
Add parameters to Repository.get_workflow_runs (#2408) (4198dbfb)
Add type stub for MainClass.get_project_column (#2502) (d514222c)
Sync GithubIntegration __init__ arguments with github.Github (#2556) (ea45237d)
Link to stable docs, update introduction in package used by pypi, move auth arg front (#2557) (006766f9)
Merge GithubObject.pyi/Requester.pyi stubs back to source (#2463) (b6258f4b)
[CI] Moving linting into separate workflow (#2522) (52fc1077)
Merging 1.58.x patch release notes into master (#2525) (217d4241)
Merge GithubException.pyi stubs back to source (#2464) (03a2f696)
Add missing fields from GithubCredentials.py to CONTRIBUTING.md (#2482) (297317ba)
Update docstring and typing for allow_forking and allow_update_branch (Repository) (#2529) (600217f0)
RTD: install current project (def5223c)
Add current dir sys.path as well (9c96faa7)
Use use_scm_version to get current version from git tag (#2429) (3ea91a3a)
Fix GithubIntegration that uses expiring jwt (#2460 _) (5011548c _)
Add expiration argument back to GithubIntegration.create_jwt (#2439 _) (822fc05c _)
Add expiration argument back to GithubIntegration.create_jwt (#2439) (822fc05c)
Add crypto extras to pyjwt, which pulls in cryptogaphy package (#2443) (554b2b28)
Move CI to Python 3.11 release and 3.12 dev (#2434) (e414c322)
RTD: install current project (def5223c)
Add current dir sys.path as well (9c96faa7)
Use use_scm_version to get current version from git tag (#2429) (3ea91a3a)
Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^
Breaking Changes ^^^^^^^^^^^^^^^^
Adding headers in GithubException is a breaking change (#1931 _) (d1644e33 _)
This is the last release that will support Python 3.6.
Improve signature of Repository.create_repo (#2118) (001970d4)
Add support for 'visibility' attribute preview for Repositories (#1872) (8d1397af)
Add function to delete pending reviews on a pull request (#1897) (c8a945bb)
Correctly deal when PaginatedList's data is a dict (#2084) (93b92cd2)
Add two_factor_authentication in AuthenticatedUser. (#1972) (4f00cbf2)
Implement organization.cancel_invitation() (#2072) (53fb4988)
Feat: Add html_url property in Team Class. (#1983) (6570892a)
Correct replay for Organization.create_project() test (#2075) (fcc12368)
Fix: #1671 Convert Python Bool to API Parameter for Authenticated User Notifications (#2001) (1da600a3)
Do not transform requestHeaders when logging (#1965) (1265747e)
Adding headers in GithubException is a breaking change (#1931) (d1644e33)
Breaking Changes ^^^^^^^^^^^^^^^^
Remove client_id/client_secret authentication (#1888) (901af8c8)
Adjust to Github API changes regarding emails (#1890) (2c77cfad) - This impacts what AuthenticatedUser.get_emails() returns
PublicKey.key_id could be int on Github Enterprise (#1894) (ad124ef4)
Do not import from unpackaged paths in typing (#1926) (27ba7838)
Implement hash for CompletableGithubObject (#1922) (4faff23c)
Use property decorator to improve typing compatibility (#1925) (e4168109)
Adding attributes "maintain" and "triage" to class "Permissions" (#1810) (76879613)
Add default arguments to Workflow method type annotations (#1857) (7d6bac9e)
Re-raise the exception when failing to parse JSON (#1892) (916da53b)
Allow adding attributes at the end of the list (#1807) (0245b758)
Updating links to Github documentation for deploy keys (#1850) (c27fb919)
Use right variable in both get_check_runs() (#1889) (3003e065)
fix bad assertions in github.Project.edit (#1817) (6bae9e5c)
Add support for deleting repository secrets (#1868) (696793de)
Switch repository secrets to using f-strings (#1867) (aa240304)
Manually fixing paths for codecov.io to cover all project files (#1813) (b2232c89)
No longer show username and password examples (#1866) (55d98373)
Switch all string addition to using f-strings (#1774) (290b6272)
Enabling connection pool_size definition (a77d4f48)
Always define the session adapter (aaec0a0f)
Pin pyjwt version (#1797 _) (31a1c007 _)
Nothing published for this version
Breaking Changes ^^^^^^^^^^^^^^^^
This is the last release that will support Python 3.5.
The Github.get_installation(integer) method has been removed. Repository.create_deployment()'s payload parameter is now a dictionary.
Add missing preview features of Deployment and Deployment Statuses API (#1674) (197e0653)
Added a method for getting a user by their id (#1691) (4cfc9912)
Fix #1742 - incorrect typehint for Installation.id (#1743) (546f6495)
Added support for the Self-Hosted actions runners API (#1684) (24251f4b)
Fix Branch protection status in the examples (#1729) (88800844)
Filter the DeprecationWarning in Team tests (#1728) (23f47539)
Added get_installations() to Organizations (#1695) (b42fb244)
Fix #1507: Add new Teams: Add or update team repository endpoint (#1509) (1c55be51)
Added support for Repository.get_workflow_runs parameters (#1682) (c23564dd)
feat(pullrequest): add the rebaseable attribute (#1690) (ee4c7a7e)
Correct type hint for InputGitTreeElement.sha (08b72b48)
Ignore new black formatting commit for git blame (#1680) (7ec4f155)
Test Organization.get_hook() (#1660 _) (2646a98c _)
Add method get_team_membership for user to Team (#1658) (749e8d35)
Fix Repository.create_repository_dispatch type signature (#1643) (f891bd61)
PaginatedList's totalCount is 0 if no last page (#1641) (69b37b4a)
Add delete_branch_on_merge arg to Repository.edit type stub (#1639) (15b5ae0c)
Correct Repository.create_pull typing harder (#1635) (5ad091d0)
upload_asset with data in memory (#1601 _) (a7786393 _)
Do not check reaction_type before sending (#1592) (136a3e80)
Adds the 'twitter_username' attribute to NamedUser. (#1585) (079f75a7)
Create WorkflowRun.timing namedtuple from the dict (#1587) (1879518e)
Add missing properties to PullRequest.pyi (#1577) (c84fad81)
More precise typing for Repository.create_pull (#1581) (4ed7aaf8)
Update sphinx-rtd-theme requirement from <0.5 to <0.6 (#1563) (f9e4feeb)
More precise typing for MainClass.get_user() (#1575) (3668f866)
Small documentation correction in Repository.py (#1565) (f0f6ec83)
Remove "api_preview" parameter from type stubs and docstrings (#1559) (cc1b884c)
Repository.update_file() content also accepts bytes (#1543) (9fb8588b)
Check all arguments of NamedUser.get_repos() (#1532) (69bfc325)
PullRequestReview is not a completable object (#1528) (19fc43ab)
Remove pointless setters in GitReleaseAsset (#1527) (1dd1cf9c)
Drop some unimplemented methods in GitRef (#1525) (d4b61311)
Remove unneeded duplicate string checks in Branch (#1524) (61b61092)
Drastically increase coverage by checking repr() (#1521) (291c4630)
Fixed formatting of docstrings for Repository.create_git_tag_and_release() and StatsPunchCard. (#1520) (ce400bc7)
correct Repository.stargazers_count return type to int (#1513) (b5737d41)
Raise a FutureWarning on use of client_{id,secret} (#1506) (2475fa66)
Improve type signature for create_from_raw_data (#1503) (c7b5eff0)
feat(column): move, edit and delete project columns (#1497) (a32a8965)
Add create_repository_dispatch to typing files (#1502) (ba9d59c2)
Add OAuth support for GitHub applications (4b437110)
Create AccessToken entity (4a6468aa)
Extend installation attributes (61808da1)
PyGithub now supports type checking thanks to (#1231 _) (91433fe9 _)
PyGithub now supports type checking thanks to (#1231) (91433fe9)
Slack is now the main channel of communication rather than Gitter (6a6e7c26)
Add and handle the maintainer_can_modify attribute in PullRequest (#1465) (e0997b43)
Add some Organization and Repository attributes. (#1468) (3ab97d61)
Add create project method (801ea385)
Bug Fixes & Improvements ^^^^^^^^^^^^^^^^^^^^^^^^
Add method for fetching pull requests associated with a commit (#1433) (0c55381b)
Don't transform completely in PullRequest.*assignees (#1428) (b1c35499)
Add draft attribute, update test (bd285248)
Docstring for Repository.create_git_tag_and_release (#1425) (bfeacded)
Add draft flag parameter, update tests (bd0211eb)
Add support to reply to a Pull request comment (#1374) (1c82573d)
PullRequest.update_branch(): allow expected_head_sha to be empty (#1412) (806130e9)
Add pre-commit plugin for black/isort/flake8 (#1398) (08b1c474)
Open file in text mode in scripts/add_attribute.py (#1396) (0396a493)
Python 2 support has been removed. If you still require Python 2, use 1.45.
Python 2 support has been removed. If you still require Python 2, use 1.45.
Breaking Changes ^^^^^^^^^^^^^^^^
This is the last release of PyGithub that will support Python 2.
Branch.edit_{user,team}_push_restrictions() have been removed
The new API is: - Branch.add_{user,team}_push_restrictions() to add new members - Branch.replace_{user,team}_push_restrictions() to replace all members - Branch.remove_{user,team}_push_restrictions() to remove members
The api_preview parameter to Github() has been removed.
Update link to GitHub Enterprise in README (#1324) (e1537f79)
Fix rtd build (b797cac0)
Add .git-blame-ignore-revs (573c674b)
Fix class used returning pull request comments (#1307) (f8e33620)
Allow GithubObject.update() to be passed headers (#1300) (989b635e)
Use inclusive ordered comparison for 'parameterized' requirement (#1281) (fb19d2f2)
Add Python 3.8 to classifiers list (#1280 _) (fec6034a _)
Correct API for NamedUser.get_organization_membership (#1277) (077c80ba)
Sync httpretty version requirement with setup.py (#1265) (99d38468)
Handle unicode strings when recording responses (#1253) (#1254) (faa1bbd6)
Add assignee removal/addition support to PRs (#1241) (a163ba15)
Check if the version is empty in manage.sh (#1268) (db294837)
Add support to vulnerability alert and automated security fixes APIs (#1195 _) (8abd50e2 _)
This version supports running under Python 3 directly, and the test suite passes under both 2.7 and recent 3.x's.
Stop ignoring unused imports and remove them (#1250) (a0765083)
Bump httpretty to be a greater or equal to (#1262) (27092fb0)
Implemented user organization membership. Added test case. (#1237) (e50420f7)
Create DEPLOY.md (c9ed82b2)
Support non-default URLs in GithubIntegration (#1229) (e33858a3)
Cleanup try/except import in PaginatedList (#1228) (89c967bb)
Jump from notifications to related PRs/issues. (#1168) (020fbebc)
Code review bodies are optional in some cases. (#1169) (b84d9b19)
Do not auto-close issues with high priority tag (ab27ba4d)
Fix bug in repository create new file example PyGithub#1210 (#1211) (74cd6856)
Add support to vulnerability alert and automated security fixes APIs (#1195) (8abd50e2)
Update Repository.update_file() docstring (#1186) (f1ae7200)
Correct return type of MainClass.get_organizations (#1179) (6e79d270)
Add cryptography to test-requirements.txt (#1165) (9b1c1e09)
Add two factor attributes on organizations (#1132 _) (a0731685 _)
Add two factor attributes on organizations (#1132) (a0731685)
Add Repository methods for pending invitations (#1159) (57af1e05)
Adds get_issue_events to PullRequest object (#1154) (acd515aa)
Adding support for pending team invitations (#993) (edab176b)
Add support for custom base_url in GithubIntegration class (#1093) (6cd0d644)
GithubIntegration: enable getting installation (#1135) (18187045)
Add sorting capability to Organization.get_repos() (#1139) (ef6f009d)
Add new Organization.get_team_by_slug method (#1144) (4349bca1)
Add description field when creating a new team (#1125) (4a37860b)
Handle a path of / in Repository.get_contents() (#1070) (102c8208)
Fix bug in recursive repository contents example (#1166) (8b6b4505)
Allow name to be specified for upload_asset (#1151) (8d2a6b53)
Repository.get_file_contents() no longer works use Repository.get_contents() instead
Exclude tests from PyPI distribution (#1031 _) (78d283b9 _)
Add support for Python 3.7 (#1028 _) (6faa00ac _)
Adding HTTP retry functionality via urllib3 (#1002) (5ae7af55)
Add new dismiss() method on PullRequestReview (#1053) (8ef71b1b)
Add since and before to get_notifications (#1074) (7ee6c417)
Add url parameter to include anonymous contributors in get_contributors (#1075) (293846be)
Provide option to extend expiration of jwt token (#1068) (86a9d8e9)
Fix the default parameter for PullRequest.create_review (#1058) (118def30)
Fix Organization.add_to_members role passing (#1039) (480f91cf)
Remove Status API (6efd6318)
Add Migration API (#899 _) (b4d895ed _)
Add support for JWT authentication (#948 _) (8ccf9a94 _)
Added support for required signatures on protected branches (#939) (8ee75a28)
Ability to filter repository collaborators (#938) (5687226b)
Add highlight search to search_code function (#925) (1fa25670)
Fix missing parameters when reversing PaginatedList (#946) (60a684c5)
Fix unable to trigger RateLimitExceededException. (#943) (972446d5)
Fix inconsistent behavior of trailing slash usage in file path (#931) (ee9f098d)
Fix missing attributes of get_repos for authenticated users (#915) (c411196f)
Improve __repr__ method of Milestone class (#921) (562908cb)
Fix comments not posted in create_review() (#909) (a18eeb3a)
Restore RateLimit.rate attribute, raise deprecation warning instead (d92389be _)
Restore RateLimit.rate attribute, raise deprecation warning instead (d92389be)
Add support for Projects (#854 _) (faca4ce1 _)
Repository.get_archive_link will now NOT follow HTTP redirect and return the url instead (#858 _) (43d325a5 _)
Repository.get_archive_link will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)
Restored NamedUser.contributions attribute (#865) (b91dee8d)
Add support for required approving review count (#888) (ef16702)
Add Organization.invite_user (880)(eb80564)
Add support for search/graphql rate limit (fd8a036)
Deprecated RateLimit.rate
Add Support search by topics (#893) (3ce0418)
Branch Protection API overhaul (#790) (171cc567)
(breaking) Removed Repository.protect_branch
Add BranchProtection
Add Branch.get_protection, Branch.get_required_pull_request_reviews, Branch.get_required_status_checks, etc
Adding archival support for Repository.edit (#843) (1a90f5db)
Add tag_name and target_commitish arguments to GitRelease.update_release (#834) (790f7dae)
Add missing attributes for IssueEvent (#857) (7ac2a2a)
Change MainClass.get_repo default laziness (#882) (6732517)
Removed Repository.get_protected_branch (#871) (49db6f8)
Major enhancement: use requests for HTTP instead of httplib (#664 _) (9aed19dd _)
Major enhancement: use requests for HTTP instead of httplib (#664) (9aed19dd)
Fix github API requests after asset upload (#771) (8bdac23c)
Add remove_membership() method to Teams class (#807) (817f2230)
Fix asset upload timeout, increase default timeout from 10s to 15s (#793) (140c6480)
Fix Content-Length invalid headers exception (#787) (23395f5f)
Add ability to skip SSL cert verification for Github Enterprise (#758) (85a9124b)
Correct Repository.get_git_tree recursive use (#767) (bd0cf309)
Add support for organization outside collaborators (#533) (c4446996)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Add documentation to github.Repository.Repository.create_git_release() (#747 _) (a769c2ff _)
Add documentation to github.Repository.Repository.create_git_release() (#747) (a769c2ff)
Add add_to_members() and remove_from_membership() (#741) (4da483d1)
Documentation: clarify semantics of get_comments (#743) (fec3c943)
Add download_url to ContentFile, closes #575 (ca6fbc45)
Fix delete method for RepositoryKey (911bf615)
Remove edit for UserKey (722f2534)
Added Issue.as_pull_request() and PullReqest.as_issue() (#630) (6bf2acc7)
Add support for getting PR single review's comments. (#670) (612c3500)
Remove some duplicate attributes introduced in #522 (566b28d3)
Added tarball_url, zipball_url, prerelease and draft property (#522) (c76e67b7)
Updated readthedocs, PyPI to reflect latest version
Updated readthedocs, PyPI to reflect latest version
Added option to create review for Pull request (#662) (162f0397)
Depreciate legacy search API (3cd176e3)
Add url attribute to PullRequestReview object (#731) (0fb176fd)
Added target_commitish option to Repository.create_git_release() (#625) (0f0a7d4e)
Fix broken Github reference link in class docstrings (a32a17bf)
Add __eq__ and __hash__ to NamedUser (#706 _) (8a13b274 _)
Fix changelog generation (5d911e22 _)
Fix changelog generation (5d911e22)
Remove the default "null" input send during GET request (#691) (cbfe8d0f)
Updated PullRequest reviewer request according to API changes (#690) (5c9c2f75)
make created_at/published_at attrs available for Release objects (#689) (2f9b1e01)
Add committer/author to Repository.delete_file (#678) (3baa682c)
Add method to get latest release of a repository (#609) (45d18436)
Fix all pep8 coding conventions (6bc804dc)
Add new params for /users/:user/repos endpoint (89834a9b)
Add PyPI badge and installation instructions to README (#682) (3726f686)
Drop support for EOL Python 2.5-2.6 and 3.2-3.3 (#674) (6735be49)
Add unit test for tree attribute of GitCommit (#668) (e5bfdbeb)
Added missing parameters for repo creation (#623) (5c41120a)
Add ability to access github Release Asset API. (#525) (52449649)
Add Python 3.6 (2533bed9)
Add Python 3.6 (e78f0ece)
Updated references in introduction.rst (d2c72bb3)
fix failing tests on py26 (291f6dde)
Import missing exception (67b078e9)
Add Support for repository collaborator invitations.
Add Support for repository collaborator invitations.
Add Support for Pull Request Reviews feature.
Add Support for Pull Request Reviews feature.
Nothing published for this version
Support for Integrations installation endpoint (656e70e1 _)
Support for Integrations installation endpoint (656e70e1)
Support HTTP 302 redirect in Organization.has_in_members
Support HTTP 302 redirect in Organization.has_in_members (0154c6b)
Add details of repo type for get_repos documentation (f119147)
Note explicit support for Python 3.5 (3ae55f0)
Fix README instructions (5b0224e)
An easier to see link to the documentation in response to issue #480. (6039a4b)
Encode GithubObject repr values in utf-8 when using Python2 (8ab9082)
Updated documentation (4304ccd)
Added a subscribers count field (a2da7f9)
Added "add_to_assignees" & "remove_from_assignees" method to Issue object. (66430d7)
Added "assignees" attribute to PullRequest object. (c0de6be)
add html_url to GitRelease (ec633aa)
Removed unused imports (65afc3f)
Fix typo in a constant (10a28e0)
Fix changelog formatting glitch (03a9227)
Added "assignees" argument in Repository.create_issue() (ba007dc)
Enhance support of "assignees" argument in Issue.edit() (14dd9f0)
Added "assignees" attribute to Issue object. (e0e5fdf)
Your coding agent can read these notes before it upgrades. Set up the MCP server →