NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1670 most downloaded on PyPI
Python wrapper for the GitHub API(http://developer.github.com/v3)
Last release 3 years ago
no release in 18 months
Release timing varies
gaps range from 8 days to 2.1 years
Most releases are documented
notes for 28 of 37 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
53 releases · first in 2012
Merge pull request #1150 from sigmavirus24/bugfix/remove-hatch-strict…
Merge pull request #1150 from sigmavirus24/bugfix/remove-hatch-strict…
Backwards Incompatible Changes ``````````````````````````````
~github3.repos.comparison.Comparison.commits was renamed to original_commits (max 250 commits). Now commits uses Github's API to get the full commit list out of the compare endpoint, so enabled pagination/iterator on the commits within the Comparison class (@amaccormack-lumira). See also gh-1137
Add tests for Python 3.11 (@cclauss). See also gh-1124
Add function for getting repos for github app (@pettermk). See also gh-1085
Cancel and failed invitation (@pallavisharma1210). See also gh-1091
Allow to set GitHub API version (@anz-ableton). See also gh-1121
Remove support to EOL Python 3.6 (@staticdev). See also gh-1103
Missing set permission for collaborators (@NargiT). See also gh-954
One column per quarter.
Migrate to GitHub's supported Teams endpoints for select methods that were relying on the deprecated endpoints. See also gh-1080_
Migrate to GitHub's supported Teams endpoints for select methods that were relying on the deprecated endpoints. See also gh-1080
Always specify our PyJWT dependency with the crypto extra so that users will get cryptography installed for them. Previously, jwcrypto had an explicit
Always specify our PyJWT dependency with the crypto extra so that users will get cryptography installed for them. Previously, jwcrypto had an explicit dependency on this but for PyJWT it is optional.
Support editing parent team and team visibility via github3.orgs.Team.edit
Support editing parent team and team visibility via github3.orgs.Team.edit
Added more allowed statuses to Deployments for github3.repos.deployment.Deployment.create_status()
Dependency Change `````````````````
Swapped LGPL jwcrypto dependency for non-GPL PyJWT
Add ~github3.orgs.ShortRepositoryWithPermissions to include the permissions dictionary returned by the GitHub API when listing repositories a team has access to.
Add :meth:`github3.orgs.Team.permissions_for("<org>/<repo>")` to retrieve a full permissions listing for a given repository in an organization.
Previously, if a file was empty Contents.decoded might return text instead of bytes, this is now fixed.
Fix Repository#ref using the wrong endpoint
Backwards Incompatible Changes ``````````````````````````````
~github3.repos.branch.Branch.protect has been updated to reflect the GitHub API
Add maintainer_can_modify parameter to ~github3.repos.repo.Repository.create_pull
Add ~github3.repos.branch.BranchProtection.required_linear_history, ~github3.repos.branch.BranchProtection.allow_force_pushes, ~github3.repos.branch.BranchProtection.allow_deletions, and ~github3.repos.branch.BranchProtection.required_conversation_resolution.
Add support for blocking users to ~github3.github.GitHub and ~github3.orgs.Organization.
~github3.github.GitHub.blocked_users
~github3.github.GitHub.block
~github3.github.GitHub.is_blocking
~github3.github.GitHub.unblock
~github3.orgs.Organization.blocked_users
~github3.orgs.Organization.block
~github3.orgs.Organization.is_blocking
~github3.orgs.Organization.unblock
Add support for beta branch synchronization endpoint ~github3.repos.branch.Branch.sync_with_upstream
~github3.users.Stargazer was added to give access to the starred_at value when listing stargazers on a Repository object.
Nothing published for this version
Removal of already deprecated code on version 1.x:
Add support to Python 3.8 and 3.9.
Remove support to Python versions that reached end-of-life (2, 3.4 and 3.5).
Update CI/CD to thoroughly test all supported version.
Remove compatibility imports for Python 2.
Remove dev-dependency for mock.
Key errors on Gist.history.
Removal of legacy unicode future imports.
Removal of already deprecated code on version 1.x:
github3.api.all_events use github.GitHub.all_events
github3.api.all_repositories use github.GitHub.all_repositories
github3.api.all_users use github.GitHub.all_users
github3.api.authorize use github.GitHub.authorize
github3.api.create_gist use github.GitHub.create_gist
github3.api.emojis
github3.api.followed_by use github.GitHub.followed_by
github3.api.followers_of use github.GitHub.followers_of
github3.api.gist use github.GitHub.gist
github3.api.gists_by use github.GitHub.gists_by
github3.api.gitignore_template use github.GitHub.gitignore_template
github3.api.gitignore_templates use github.GitHub.gitignore_templates
github3.api.issue use github.GitHub.issue
github3.api.issues_on use github.GitHub.issues_on
github3.api.markdown use github.GitHub.markdown
github3.api.octocat use github.GitHub.octocat
github3.api.organization
github3.api.organizations_with use github.GitHub.organizations_with
github3.api.public_gists use github.GitHub.public_gists
github3.api.pull_request use github.GitHub.pull_request
github3.api.rate_limit
github3.api.repositories_by use github.GitHub.organizations_with
github3.api.repository
github3.api.search_code use github.GitHub.search_code
github3.api.search_issues use github.GitHub.search_issues
github3.api.search_repositories use github.GitHub.search_repositories
github3.api.search_users use github.GitHub.search_users
github3.api.starred_by use github.GitHub.starred_by
github3.api.subscriptions_for use github.GitHub.subscriptions_for
github3.api.user
github3.api.zen use github.GitHub.zen
Git#Blob.decoded use Git#Blob.decode_content
Team#is_member use Login#is_member
Team#add_member use Team#add_or_update_membership
Team#invite use Team#add_or_update_membership
Team#remove_member use Team#add_or_update_membership
Organization#add_member add username to team.
Organization#events use Organization#public_events
Issue#assign use issues.issue.Issue.add_assignees
Add partial support for the Checks API:
Add partial support for the Checks API:
Add support for listing check runs via check_runs and check suites via check_suites methods to RepoCommit, MiniCommit and ShortCommit classes
CheckRun.update to update the check run
CheckSuite.check_runs to retrieve the check runs for this suite
CheckRunOutput.annotations class to retrieve the annotations for a check run
Add unignore method to unignore notifications from repository for the user, to Repository and ShortRepository classes.
Add unsubscribe method to unsubscribe the user to repository's notifications, to Repository and ShortRepository classes.
Add support for webhooks in an organization by adding:
OrganizationHook class
create_hook, hook, and hooks methods to ShortOrganization and Organization classes
A Project.retrieve_issue_from_content method was added to retrieve an Issue from the content url.
A Project.retrieve_pull_request_from_content method was added to retrieve a PullRequest from the content url.
Add support for Parent/Child teams via the hellicat-preview API preview type.
Add support for specifying merge commit titles when merging a Pull Request.
Stop hard-coding GitHub url that breaks work with a GitHub Enterprise instance.
Set default connect and read timeouts in GitHubSession to avoid hangs.
This is a larger release with some enhancements and bug fixes.
This is a larger release with some enhancements and bug fixes.
Partial GitHub Apps support. We added the following:
GitHub.login_as_app to login using JWT as an Application
GitHub.login_as_app_installation to login using a token obtained from an App's JWT
GitHub.app to retrieve an application by its "slug"
GitHub.app_installation to retrieve a specific installation by its ID
GitHub.app_installations to retrieve all of an App's installations
GitHub.app_installation_for_organization to retrieve an organization's installation of an App
GitHub.app_installation_for_repository to retrieve an installation for a specific repository
GitHub.app_installation_for_user to retrieve an installation for a specific user
GitHub.authenticated_app to retrieve the metadata for a specific App
Not supported as of this release:
Organization Invitations Preview API is now supported. This includes an additional Invitation object. This is the result of hard work by Hal Wine.
A ShortLabel class was added to represent the shorter (description-less) representation of labels returned by the API.
The branch protections API is now completely represented in github3.py.
We now support the GPG Keys API.
We now support the Commit Search API.
We now support Repository Invitations.
We now have assign and unassign methods that support assigning and unassigning multiple users at once.
We now support review requests on Pull Requests.
We now support the ability for a user to activate their membership in an Organization.
We now support recurisvely traverse a tree via the API.
We now support enabling or disabling projects on a Repository.
We now support editing and reading Repository topics.
We now support Repository Pull Request merge settings.
No longer require a Gist to have an owner.
Branch.latest_sha() now returns text (unicode) as documented.
A great deal of the exception feature work done above was performed by the newest team member of the github3.py project: Jacopo Notarstefano (a.k.a, @jacquerie on GitHub). This project has had new life breathed into it thanks to Jacopo.
This is a small release with some enhancements.
This is a small release with some enhancements.
Repository collaborators now returns a users.Collaborator object, instead of a users.ShortUser object. This is to support collaborator affiliations. A refresh call of this object (and users.Contributor) will result in a full users.User object.
The call to iterate collaborators of a repository (Repository#collaborators) can now take an affiliation filter with options of outside, direct, and all. The default is all, which preserves the previous behavior of this method.
Parse certain attributes on IssueEvent into objects (again, this was a regression in 1.0)
Handle older GitHub Enterprise responses for authenticated user objects
Handle large file pull request responses not including a patch attribute
Handle 304s from users passing etag
Handle 304s from users passing etag
Generate _api attribute for ShortBranch objects
Require auth for creating gists
Ensure only desired auth scheme is used with requests
Handle older GitHub Enterprise responses for repository objects
Fix missing python-dateutil requirement when installing from a wheel.
Fix missing python-dateutil requirement when installing from a wheel.
Breaking Changes ````````````````
1.0.0 is a huge release. It includes a great deal of changes to github3.py. It is suggested you read the following release notes carefully.
Unfortunately, it's plausible that some things have slipped through the cracks in these release notes.
Methods that iterate over collections return a separate class than methods that retrieve a single instance. These objects have separate representations when retrieving the data from GitHub's API. They include:
Team now can be represented by ShortTeam or Team
Organization now can be represented by ShortOrganization or Organization
Issue now can be represented by ShortIssue or Issue
PullRequest now can be represented by ShortPullRequest or PullRequest
Commit now can be represented by ShortCommit, or Commit
Gist now can be represented by ShortGist, GistFork, or Gist
GistFile now can be represented by ShortGistFile or GistFile
Repository objects:
Branch now can be represented by ShortBranch or Branch
RepoComment now can be represented by ShortComment or ShortRepoComment
Repository now can be represented by ShortRepository or Repository
RepoCommit now can be represented by MiniCommit, ShortCommit, or RepoCommit
Status now can be represented by ShortStatus or Status
User now can be represented by ShortUser, Contributor, User, or AuthenticatedUser
License now can be represented by ShortLicense or License
Refreshing a short representation of an object will result in a new object of a new class returned. For example:
import github3
users = [(u, u.refresh()) for u in github3.all_users(10)]
for short_user, user in users:
assert isinstance(short_user, github3.users.ShortUser)
assert isinstance(user, github3.users.User)
Remove Thread.comment, Thread.thread, Thread.urls attributes.
Remove Thread#is_unread method. Use the Thread.unread attribute instead.
Subscription has been split into two objects: ThreadSubscription and RepositorySubscription with the same methods.
Remove is_ignored method from our Subscription objects. Use the ignored attribute instead.
Remove is_subscribed method from our Subscription objects. Use the subscribed attribute instead.
Move Users#add_email_addresses to GitHub#add_email_addresses.
Move Users#delete_email_addresses to GitHub#delete_email_addresses.
Remove Users#add_email_address and Users#delete_email_address.
Remove Repository#update_label.
When you download a release asset, instead of returning True or False, it will return the name of the file in which it saved the asset.
The download method on github3.pulls.PullFile instances has been removed.
The contents method on github3.pulls.PullFile instances now return instances of github3.repos.contents.Contents.
Replace Repository#comments_on_commit with RepoCommit#comments.
Organization#add_member has been changed. The second parameter has been changed to team_id and now expects an integer.
Organization#add_repository has been changed. The second parameter has been changed to team_id and now expects an integer.
All methods and functions starting with iter_ have been renamed.
Old name |
New name |
|---|---|
github3.iter_all_repos |
github3.all_repositories |
github3.iter_all_users |
github3.all_users |
github3.iter_events |
github3.all_events |
github3.iter_followers |
github3.followers_of |
github3.iter_following |
github3.followed_by |
github3.iter_repo_issues |
github3.issues_on |
github3.iter_orgs |
github3.organizations_with |
github3.iter_user_repos |
github3.repositories_by |
github3.iter_starred |
github3.starred_by |
github3.iter_subscriptions |
github3.subscriptions_for |
Deployment#iter_statuses |
Deployment#statuses |
Gist#iter_comments |
Gist#comments |
Gist#iter_commits |
Gist#commits |
Gist#iter_files |
Gist#files |
Gist#iter_forks |
Gist#forks |
GitHub#iter_all_repos |
GitHub#all_repositories |
GitHub#iter_all_users |
GitHub#all_users |
GitHub#iter_authorizations |
GitHub#authorizations |
GitHub#iter_emails |
GitHub#emails |
GitHub#iter_events |
GitHub#events |
GitHub#iter_followers |
GitHub#{followers,followers_of} |
GitHub#iter_following |
GitHub#{following,followed_by} |
GitHub#iter_gists |
GitHub#{gists,gists_by,public_gists} |
GitHub#iter_notifications |
GitHub#notifications |
GitHub#iter_org_issues |
GitHub#organization_issues |
GitHub#iter_issues |
GitHub#issues |
GitHub#iter_user_issues |
GitHub#user_issues |
GitHub#iter_repo_issues |
GitHub#issues_on |
GitHub#iter_keys |
GitHub#keys |
GitHub#iter_orgs |
GitHub#{organizations,organizations_with} |
GitHub#iter_repos |
GitHub#repositories |
GitHub#iter_user_repos |
GitHub#repositories_by |
GitHub#iter_user_teams |
GitHub#user_teams |
Issue#iter_comments |
Issue#comments |
Issue#iter_events |
Issue#events |
Issue#iter_labels |
Issue#labels |
Milestone#iter_labels |
Milestone#labels |
Organization#iter_members |
Organization#members |
Organization#iter_public_members |
Organization#public_members |
Organization#iter_repos |
Organization#repositories |
Organization#iter_teams |
Organization#teams |
PullRequest#iter_comments |
PullRequest#review_comments |
PullRequest#iter_commits |
PullRequest#commits |
PullRequest#iter_files |
PullRequest#files |
PullRequest#iter_issue_comments |
PullRequest#issue_comments |
Team#iter_members |
Team#members |
Team#iter_repos |
Team#repositories |
Repository#iter_assignees |
Repository#assignees |
Repository#iter_branches |
Repository#branches |
Repository#iter_code_frequency |
Repository#code_frequency |
Repository#iter_collaborators |
Repository#collaborators |
Repository#iter_comments |
Repository#comments |
Repository#iter_comments_on_commit |
RepoCommit#comments |
Repository#iter_commit_activity |
Repository#commit_activity |
Repository#iter_commits |
Repository#commits |
Repository#iter_contributor_statistics |
Repository#contributor_statistics |
Repository#iter_contributors |
Repository#contributors |
Repository#iter_forks |
Repository#forks |
Repository#iter_hooks |
Repository#hooks |
Repository#iter_issues |
Repository#issues |
Repository#iter_issue_events |
Repository#issue_events |
Repository#iter_keys |
Repository#keys |
Repository#iter_labels |
Repository#labels |
Repository#iter_languages |
Repository#languages |
Repository#iter_milestones |
Repository#milestones |
Repository#iter_network_events |
Repository#network_events |
Repository#iter_notifications |
Repository#notifications |
Repository#iter_pages_builds |
Repository#pages_builds |
Repository#iter_pulls |
Repository#pull_requests |
Repository#iter_refs |
Repository#refs |
Repository#iter_releases |
Repository#releases |
Repository#iter_stargazers |
Repository#stargazers |
Repository#iter_subscribers |
Repository#subscribers |
Repository#iter_statuses |
Repository#statuses |
Repository#iter_tags |
Repository#tags |
Repository#iter_teams |
Repository#teams |
Repository#iter_teams |
Repository#teams |
User#iter_events |
User#events |
User#iter_followers |
User#followers |
User#iter_following |
User#following |
User#iter_keys |
User#keys |
User#iter_org_events |
User#organization_events |
User#iter_received_events |
User#received_events |
User#iter_orgs |
User#organizations |
User#iter_starred |
User#starred_repositories |
User#iter_subscriptions |
User#subscriptions |
github3.login has been simplified and split into two functions:
github3.login serves the majority use case and only provides an authenticated GitHub object.
github3.enterprise_login allows GitHub Enterprise users to log into their service.
GitHub#iter_followers was split into two functions:
GitHub#followers_of which iterates over all of the followers of a user whose username you provide
GitHub#followers which iterates over all of the followers of the authenticated user
GitHub#iter_following was split into two functions:
GitHub#followed_by which iterates over all of the users followed by the username you provide
GitHub#following which iterates over all of the users followed by the authenticated user
GitHub#iter_gists was split into three functions:
GitHub#public_gists which iterates over all of the public gists on GitHub
GitHub#gists_for which iterates over all the public gists of a specific user
GitHub#gists which iterates over the authenticated users gists
GitHub#iter_orgs was split into two functions:
GitHub#organizations which iterates over the authenticated user's organization memberships
GitHub#organizations_with which iterates over the given user's organization memberships
GitHub#iter_subscriptions was split into two functions:
GitHub#subscriptions_for which iterates over an arbitrary user's subscriptions
GitHub#subscriptions which iterates over the authenticated user's subscriptions
GitHub#iter_starred was split into two functions:
GitHub#starred_by which iterates over an arbitrary user's stars
GitHub#starred which iterates over the authenticated user's stars
GitHub#user was split into two functions:
GitHub#user which retrieves an arbitrary user's information
GitHub#me which retrieves the authenticated user's information
GitHub#update_user has been renamed to GitHub#update_me and only uses 1 API call now. It was renamed to reflect the addition of GitHub#me.
The legacy watching API has been removed:
GitHub#subscribe
GitHub#unsubscribe
GitHub#is_subscribed
GitHub#create_repo was renamed to GitHub#create_repository
GitHub#delete_key was removed. To delete a key retrieve it with GitHub#key and then call Key#delete.
Repository#set_subscription was split into two simpler functions
Repository#subscribe subscribes the authenticated user to the repository's notifications
Repository#ignore ignores notifications from the repository for the authenticated user
Repository#contents was split into two simpler functions
Repository#file_contents returns the contents of a file object
Repository#directory_contents returns the contents of files in a directory.
Organization#add_repo and Team#add_repo have been renamed to Organization#add_repository and Team#add_repository respectively.
Organization#create_repo has been renamed to Organization#create_repository. It no longer accepts has_downloads. It now accepts license_template.
Organization#remove_repo has been renamed to Organization#remove_repository. It now accepts team_id instead of team.
github3.ratelimit_remaining was removed
GitHub instances can no longer be used as context managers
The pull request API has changed.
The links attribute now contains the raw _links attribute from the API.
The merge_commit_sha attribute has been removed since it was deprecated in the GitHub API.
To present a more consistent universal API, certain attributes have been renamed.
Old name |
New attribute name |
|---|---|
PullFile.additions |
additions_count |
PullFile.deletions |
deletions_count |
PullFile.changes |
changes_count |
PullRequest.additions |
additions_count |
PullRequest.comments |
comments_count |
PullRequest.commits |
commits_count |
PullRequest.deletions |
deletions_count |
PullRequest.review_comments |
review_comments_count |
The Gist API has changed.
The forks and files attributes that used to keep count of the number of forks and files have been removed.
The comments attribute which provided the number of comments on a gist, has been renamed to comments_count.
The is_public method has been removed since it just returned the Gist.public attribute.
Most instances of login as a parameter have been changed to username for clarity and consistency. This affects the following methods:
github3.authorize
github3.repositories_by
github3.user
GitHub
GitHub#authorize
GitHub#follow
GitHub#is_following
GitHub#is_starred
GitHub#issue
GitHub#followers_of
GitHub#followed_by
GitHub#gists_by
GitHub#issues_on
GitHub#organizations_with
GitHub#starred_by
GitHub#subscriptions_for
GitHub#user
GitHubEnterprise
Issue#assign
Organization#add_member
Organization#is_member
Organization#is_public_member
Organization#remove_member
Repository#add_collaborator
Repository#is_assignee
Repository#is_collaborator
Repository#remove_collaborator
Team#add_member
Team#is_member
User#is_assignee_on
User#is_following
Repository.stargazers is now Repository.stargazers_count (conforming with the attribute name returned by the API).
The Issue API has changed in order to provide a more consistent attribute API. Issue.comments is now Issue.comments_count and returns the number of comments on an issue.
The Issue.labels attribute has also been renamed. It is now available from Issue.original_labels. This will provide the user with the list of Label objects that was returned by the API. To retrieve an updated list of labels, the user can now use Issue#labels, e.g.
i = github3.issue('sigmavirus24', 'github3.py', 30)
labels = list(i.labels())
The Organization and User APIs have changed to become more consistent with the rest of the library and GitHub API. The following attribute names have been changed
Old name |
New attribute name |
|---|---|
Organization.followers |
followers_count |
Organization.following |
following_count |
Organization.public_repos |
public_repos_count |
User.followers |
followers_count |
User.following |
following_count |
User.public_repos |
public_repos_count |
The Release.assets attribute has been renamed to Release.original_assets. To retrieve up-to-date assets, use the Release#assets method.
The Authorization API has changed. The update method has been split into three methods: add_scopes, remove_scopes, replace_scopes. This highlights the fact that Authorization#update used to require more than one request.
Event#is_public has been removed. Simply check the event's public attribute instead.
Repository#delete_file and Repository#update_file have been removed. Simply delete or update a file using the Contents API.
Content#delete now returns a dictionary that matches the JSON returned by the API. It contains the Contents and the Commit associated with the deletion.
Content#update now returns a dictionary that matches the JSON returned by the API. It contains the Contents and the Commit associated with the deletion.
Issue.pull_request has been renamed to Issue.pull_request_urls
Most objects now have a session attribute. This is a subclass of a Session object from requests. This can now be used in conjunction with a third-party caching mechanism. The suggested caching library is cachecontrol.
All object's url attribute are now available.
You can now retrieve a repository by its id with GitHub#repository_with_id.
You can call the pull_request method on an Issue now to retrieve the associated pull request:
import github3
i = github3.issue('sigmavirus24', 'github3.py', 301)
pr = i.pull_request()
Add support for the Issue locking API currently in Preview Mode
Add Organization#all_events.
Add Tag.tagger_as_User which attempts to return the tagger as User.
Add Repo.statuses and a corresponding repo.status.CombinedStatus to
Support filtering organization members by whether they have 2FA enabled.
Support filtering organization and team members by role.
Add GitHub#all_organizations.
Add PullRequest#create_comment.
Add Repository#release_by_tag_name to retrieve a Release from a Repository by its associated tag name.
Add Repository#latest_release to retrieve the latest Release for a Repository.
Add GitHub#license to retrieve a github3.license.License by the license name.
Add GitHub#licenses to iterate over all the licenses returned by GitHub's Licenses API.
Add protection information to github3.repos.branch.Branch.
Add Branch#protect and Branch#unprotect to support updating a Branch's protection status.
Vastly improved GitHub Enterprise support:
Add User#rename to rename a user in a GitHub Enterprise installation.
Add GitHub#create_user to create a user.
Add User#impersonate to create an impersonation token by an admin for a particular user.
Add User#revoke_impersonation to revoke all impersonation tokens for a user.
Add User#promote to promote a particular user to a site administrator.
Add User#demote to demote a site administrator to a simple user.
Add User#suspend to suspend a user's account.
Add User#unsuspend to reinstate a user's account.
Add original_content attribute to a GistFile
Add GistFile#content to retrieve the contents of a file in a gist from the API.
Add support for the alpha bulk issue import API
You can now download a file in a pull request to a file on disk.
You can retrieve the contents of the file in a pull request as bytes.
Add id attribute to github3.repos.milestone.Milestone.
Add support for sort, direction, and since parameters to the comments method on github3.issues.Issue.
Add branch argument to update and delete methods on github3.repos.contents.Contents.
Add permissions attribute to github3.repos.repo.Repository object to retrieve the permissions for a specific repository.
Allow a deployment to be retrieved by its id.
Add the delete method to the github3.repos.release.Asset class.
Fix the dependencies and requirements. In 1.0.0a3 we moved to using the setup.cfg file to define optional dependencies for wheels. By doing so we accidentally left out our actual hard dependencies.
The context parameter to Repository#create_status now properly defaults to default.
Fix AttributeError when IssueEvent has assignee.
Correctly set the message attribute on RepoCommit instances.
Include browser_download_url on Asset instances.
(Packaging related) Fix setup.py to use proper values for certain parameters.
Fix ValueError for Repository#create_file.
Pull request files can now be downloaded even when the repository is private.
Fix exception when merging a pull request with an empty commit message.
Add missing Issue events.
Coerce review comment positions to integers.
Deprecate Organization#events in favor of Organization#public_events.
Fix test failures on Windows caused by unclosed file handles. get a combined view of commit statuses for a given ref.
The refresh method will eventually stop updating the instance in place and instead only return new instances of objects.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Backport of PullRequest#create_review_comment by Adrian Moisey
Backport of PullRequest#create_review_comment by Adrian Moisey
Backport of PullRequest#review_comments by Adrian Moisey
Backport of a fix that allows authenticated users to download Release Assets. Original bug reported by Eugene Fidelin in issue #288.
Documentation typo fix by Marc Abramowitz
Deprecate Team#add_member, Team#remove_member, and Organization#add_member.
Updates for new team management API changes
Add Team#invite, Team#membership_for, and Team#revoke_membership
Deprecate Team#add_member, Team#remove_member, and Organization#add_member.
Update payload handler for TeamAddEvent.
Correct Repository attribute fork_count should be forks_count
Correct Repository attribute fork_count should be forks_count
See: http://developer.github.com/changes/2014-02-28-issue-and-pull-query-enhancements/ This includes breaking changes to Repository#iter_pulls.
Add Deployments API
Add Pages API
Add support so applications can revoke a single authorization or all authorizations created by the application
Add the ability for users to ping hooks
Allow users to list a Repository's collaborators
Allow users to create an empty blob on a Repository
Update how users can list issues and pull requests. See: http://developer.github.com/changes/2014-02-28-issue-and-pull-query-enhancements/ This includes breaking changes to Repository#iter_pulls.
Update methods to handle the pagination changes.
Fix typo stargarzers_url
Add assets attribute to Release object.
Fix wrong argument to Organization#create_team (permissions versus permission)
Fix Issue Search Result's representation and initialization
Fix Repository Search Result's initialization
Allow users to pass a two-factor authentication callback to GitHub#authorize.
Fix bug in GitHub#search_users (and github3.search_users). Thanks @abesto
Fix bug in GitHub#search_users (and github3.search_users). Thanks @abesto
Expose the stargazers count for repositories. Thanks @seveas
Add documentation for using Two-factor Authentication
Add documentation for using Two-factor Authentication
Fix oversight where github3.login could not be used for 2FA
Breaking Change Remove legacy search API
Breaking Change Remove legacy search API
I realize this should have been scheduled for 1.0 but I was a bit eager to remove this.
Use Betamax to start recording integration tests
Add support for Releases API
Add support for Feeds API
Add support for Two-Factor Authentication via the API
Add support for New Search API
Add github3.search_code, github3.search_issues, github3.search_repositories, github3.search_users
Add GitHub#search_code, GitHub#search_issues, GitHub#search_repositories, GitHub#search_users
Switch to requests >= 2.0
Totally remove all references to the Downloads API
Fix bug in Repository#update_file where branch was not being sent to the API. Thanks @tpetr!
Add GitHub#rate_limit to return all of the information from the /rate_limit endpoint.
Catch missing attributes -- diff_hunk, original_commit_id -- on ReviewComment.
Add support for the Emojis endpoint
Note deprecation of a few object attributes
Add support for the ReleaseEvent
Add GitHub#iter_user_teams to return all of the teams the authenticated user belongs to
Add dependency on uritemplate.py_ to add URITemplates to different classes. See the documentation for attributes which are templates.
Add dependency on uritemplate.py to add URITemplates to different classes. See the documentation for attributes which are templates.
Fixed issue trying to parse html_url on Pull Requests courtesy of @rogerhu.
Remove expecter as a test dependency courtesy of @esacteksab.
Fixed issue #141 trying to find an Event that doesn't exist.
Fix Issue.close, Issue.reopen, and Issue.assign. (Issue #106)
Fix Issue.close, Issue.reopen, and Issue.assign. (Issue #106)
Add check_authorization to the GitHub class to cover the new part of the API.
Add create_file, update_file, delete_file, iter_contributor_statistics, iter_commit_activity, iter_code_frequency and weekly_commit_count to the Repository object.
Add update and delete methods to the Contents object.
Add is_following to the User object.
Add head, base parameters to Repository.iter_pulls.
The signature of Hook.edit has changed since that endpoint has changed as well. See: github/developer.github.com@b95f291a47954154a6a8cd7c2296cdda9b610164
github3.GitHub can now be used as a context manager, e.g.,
with github.GitHub() as gh:
u = gh.user('sigmavirus24')
Add equality for labels courtesy of Alejandro Gomez (@alejandrogomez)
Add equality for labels courtesy of Alejandro Gomez (@alejandrogomez)
Add sort and order parameters to github3.GitHub.search_users and github3.GitHub.search_repos.
Add sort and order parameters to github3.GitHub.search_users and github3.GitHub.search_repos.
Add iter_commits to github3.gists.Gist as a means of re-requesting just the history from GitHub and iterating over it.
Add minimal logging (e.g., logging.getLogger('github3'))
Re-organize the library a bit. (Split up repos.py, issues.py, gists.py and a few others into sub-modules for my sanity.)
Calling refresh(True) on a github3.structs.GitHubIterator actually works as expected now.
API iter_ methods now accept the etag argument as the GitHub.iter_ methods do.
Make github3.octocat and github3.github.GitHub.octocat both support sending messages to make the Octocat say things. (Think cowsay)
Remove vendored dependency of PySO8601.
Split GitHub.iter_repos into GitHub.iter_user_repos and GitHub.iter_repos. As a consequence github3.iter_repos is now github3.iter_user_repos
IssueComment.update was corrected to match GitHub's documentation
github3.login now accepts an optional url parameter for users of the GitHubEnterprise API, courtesy of Kristian Glass (@doismellburning)
Several classes now allow their instances to be compared with == and !=. In most cases this will check the unique id provided by GitHub. In others, it will check SHAs and any other guaranteed immutable and unique attribute. The class doc-strings all have information about this and details about how equivalence is determined.
Add missing optional parameter to Repository.contents. Thanks @tpetr
Add missing optional parameter to Repository.contents. Thanks @tpetr
Stop trying to decode the byte strings returned by b64decode. Fixes #72
Stop trying to decode the byte strings returned by b64decode. Fixes #72
Hot fix an issue when a user doesn't have a real name set
Hot fix an issue when a user doesn't have a real name set
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →