Changelog¶
1.0.1: 2018-03-14¶
Bugs Fixed¶
- Fix missing python-dateutil requirement when installing from a wheel.
1.0.0: 2018-03-13¶
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 very carefully.
Unfortunately, it’s plausible that some things have slipped through the cracks in these release notes.
Breaking Changes¶
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 theThread.unread
attribute instead.Subscription
has been split into two objects:ThreadSubscription
andRepositorySubscription
with the same methods.Remove
is_ignored
method from our Subscription objects. Use theignored
attribute instead.Remove
is_subscribed
method from our Subscription objects. Use thesubscribed
attribute instead.Move
Users#add_email_addresses
toGitHub#add_email_addresses
.Move
Users#delete_email_addresses
toGitHub#delete_email_addresses
.Remove
Users#add_email_address
andUsers#delete_email_address
.Remove
Repository#update_label
.When you download a release asset, instead of returning
True
orFalse
, it will return the name of the file in which it saved the asset.The
download
method ongithub3.pulls.PullFile
instances has been removed.The
contents
method ongithub3.pulls.PullFile
instances now return instances ofgithub3.repos.contents.Contents
.Replace
Repository#comments_on_commit
withRepoCommit#comments
.Organization#add_member
has been changed. The second parameter has been changed toteam_id
and now expects an integer.Organization#add_repository
has been changed. The second parameter has been changed toteam_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#reposistories |
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 authenticatedGitHub
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 provideGitHub#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 provideGitHub#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 GitHubGitHub#gists_for
which iterates over all the public gists of a specific userGitHub#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 membershipsGitHub#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 subscriptionsGitHub#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 starsGitHub#starred
which iterates over the authenticated user’s stars
GitHub#user
was split into two functions:GitHub#user
which retrieves an arbitrary user’s informationGitHub#me
which retrieves the authenticated user’s information
GitHub#update_user
has been renamed toGitHub#update_me
and only uses 1 API call now. It was renamed to reflect the addition ofGitHub#me
.- The legacy watching API has been removed:
GitHub#subscribe
GitHub#unsubscribe
GitHub#is_subscribed
GitHub#create_repo
was renamed toGitHub#create_repository
GitHub#delete_key
was removed. To delete a key retrieve it withGitHub#key
and then callKey#delete
.Repository#set_subscription
was split into two simpler functionsRepository#subscribe
subscribes the authenticated user to the repository’s notificationsRepository#ignore
ignores notifications from the repository for the authenticated user
Repository#contents
was split into two simpler functionsRepository#file_contents
returns the contents of a file objectRepository#directory_contents
returns the contents of files in a directory.
Organization#add_repo
andTeam#add_repo
have been renamed toOrganization#add_repository
andTeam#add_repository
respectively.Organization#create_repo
has been renamed toOrganization#create_repository
. It no longer acceptshas_downloads
. It now acceptslicense_template
.Organization#remove_repo
has been renamed toOrganization#remove_repository
. It now acceptsteam_id
instead ofteam
.github3.ratelimit_remaining
was removedGitHub
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.
- The
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
andfiles
attributes that used to keep count of the number offorks
andfiles
have been removed. - The
comments
attribute which provided the number of comments on a gist, has been renamed tocomments_count
. - The
is_public
method has been removed since it just returned theGist.public
attribute.
- The
Most instances of
login
as a parameter have been changed tousername
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 nowRepository.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 nowIssue.comments_count
and returns the number of comments on an issue.The
Issue.labels
attribute has also been renamed. It is now available fromIssue.original_labels
. This will provide the user with the list ofLabel
objects that was returned by the API. To retrieve an updated list of labels, the user can now useIssue#labels
, e.g.i = github3.issue('sigmavirus24', 'github3.py', 30) labels = list(i.labels())
The
Organization
andUser
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 toRelease.original_assets
. To retrieve up-to-date assets, use theRelease#assets
method. - The
Authorization
API has changed. Theupdate
method has been split into three methods:add_scopes
,remove_scopes
,replace_scopes
. This highlights the fact thatAuthorization#update
used to require more than one request. Event#is_public
has been removed. Simply check the event’spublic
attribute instead.Repository#delete_file
andRepository#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 toIssue.pull_request_urls
New Features¶
Most objects now have a
session
attribute. This is a subclass of aSession
object fromrequests
. This can now be used in conjunction with a third-party caching mechanism. The suggested caching library iscachecontrol
.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 anIssue
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 as User.Add
Repo.statuses
and a correspondingrepo.status.CombinedStatus
toSupport 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 agithub3.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
andBranch#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
Add
original_content
attribute to aGistFile
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 togithub3.repos.milestone.Milestone
.Add support for sort, direction, and since parameters to the
comments
method ongithub3.issues.Issue
.Add branch argument to update and delete methods on
github3.repos.contents.Contents
.Add
permissions
attribute togithub3.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 thegithub3.repos.release.Asset
class.
Bugs Fixed¶
- 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 toRepository#create_status
now properly defaults to"default"
. - Fix AttributeError when
IssueEvent
has assignee. - Correctly set the
message
attribute onRepoCommit
instances. - Include
browser_download_url
onAsset
instances. - (Packaging related) Fix
setup.py
to use proper values for certain parameters. - Fix
ValueError
forRepository#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.
Deprecations and Other Changes¶
- Deprecate
Organization#events
in favor ofOrganization#public_events
. - Fix test failtures 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.
0.9.3: 2014-11-04¶
- 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
0.9.2: 2014-10-05¶
- Updates for new team management API changes
- Add
Team#invite
,Team#membership_for
, andTeam#revoke_membership
- Deprecate
Team#add_member
,Team#remove_member
, andOrganization#add_member
. - Update payload handler for
TeamAddEvent
.
- Add
0.9.1: 2014-08-10¶
- Correct Repository attribute
fork_count
should beforks_count
0.9.0: 2014-05-04¶
- 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 toRelease
object. - Fix wrong argument to
Organization#create_team
(permissions
versuspermission
) - 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
.
0.8.2: 2014-02-11¶
- Fix bug in
GitHub#search_users
(andgithub3.search_users
). Thanks @abesto - Expose the stargazers count for repositories. Thanks @seveas
0.8.1: 2014-01-26¶
- Add documentation for using Two Factor Authentication
- Fix oversight where
github3.login
could not be used for 2FA
0.8.0: 2014-01-03¶
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
- Add
Switch to requests >= 2.0
Totally remove all references to the Downloads API
Fix bug in
Repository#update_file
wherebranch
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
– onReviewComment
.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
0.7.1: 2013-09-30¶
- 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.
0.7.0: 2013-05-19¶
Fix
Issue.close
,Issue.reopen
, andIssue.assign
. (Issue #106)Add
check_authorization
to theGitHub 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
andweekly_commit_count
to theRepository
object.Add
update
anddelete
methods to theContents
object.Add
is_following
to theUser
object.Add
head
,base
parameters toRepository.iter_pulls
.The signature of
Hook.edit
has changed since that endpoint has changed as well. See: github/developer.github.com@b95f291a47954154a6a8cd7c2296cdda9b610164github3.GitHub
can now be used as a context manager, e.g.,with github.GitHub() as gh: u = gh.user('sigmavirus24')
0.6.1: 2013-04-06¶
- Add equality for labels courtesy of Alejandro Gomez (@alejandrogomez)
0.6.0: 2013-04-05¶
- Add
sort
andorder
parameters togithub3.GitHub.search_users
andgithub3.GitHub.search_repos
. - Add
iter_commits
togithub3.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 agithub3.structs.GitHubIterator
actually works as expected now. - API
iter_
methods now accept theetag
argument as theGitHub.iter_
methods do. - Make
github3.octocat
andgithub3.github.GitHub.octocat
both support sending messages to make the Octocat say things. (Think cowsay) - Remove vendored dependency of PySO8601.
- Split
GitHub.iter_repos
intoGitHub.iter_user_repos
andGitHub.iter_repos
. As a consequencegithub3.iter_repos
is nowgithub3.iter_user_repos
IssueComment.update
was corrected to match GitHub’s documentationgithub3.login
now accepts an optionalurl
parameter for users of theGitHubEnterprise
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.
0.5.3: 2013-03-19¶
- Add missing optional parameter to Repository.contents. Thanks @tpetr
0.5.2: 2013-03-02¶
- Stop trying to decode the byte strings returned by
b64decode
. Fixes #72
0.5.1: 2013-02-21¶
- Hot fix an issue when a user doesn’t have a real name set
0.5: 2013-02-16¶
100% (mock) test coverage
Add support for conditional refreshing, e.g.,
import github3 u = github3.user('sigmavirus24') # some time later u.refresh() # Will ALWAYS send a GET request and lower your ratelimit u.refresh(True) # Will send the GET with a header such that if nothing # has changed, it will not count against your ratelimit # otherwise you'll get the updated user object.
Add support for conditional iterables. What this means is that you can do:
import github3 i = github3.iter_all_repos(10) for repo in i: # do stuff i = github3.iter_all_repos(10, etag=i.etag)
And the second call will only give you the new repositories since the last request. This mimics behavior in pengwynn/octokit
Add support for sortable stars.
In github3.users.User,
iter_keys
now allows you to iterate over any user’s keys. No name is returned for each key. This is the equivalent of visiting: github.com/:user.keysIn github3.repos.Repository,
pubsubhubbub
has been removed. Use github3.github.Github.pubsubhubbub insteadIn github3.api,
iter_repo_issues
’s signature has been corrected.Remove
list_{labels, comments, events}
methods from github3.issues.IssueRemove
list_{comments, commits, files}
methods from github3.pulls.PullRequestIn github3.gists.Gist:
- the
user
attribute was changed by GitHub and is now theowner
attribute - the
public
attribute and theis_public
method return the same information. The method will be removed in the next version. - the
is_starred
method now requires authentication - the default
refresh
method is no longer over-ridden. In a change made in before, a genericrefresh
method was added to most objects. This was overridden in the Gist object and would cause otherwise unexpected results.
- the
github3.events.Event.is_public()
andgithub3.events.Event.public
now return the same information. In the next version, the former will be removed.In github3.issues.Issue
add_labels
now returns the list of Labels on the issue instead of a boolean.remove_label
now retuns a boolean.remove_all_labels
andreplace_labels
now return lists. The former should return an empty list on a successful call. The latter should return a list ofgithub3.issue.Label
objects.
Now we won’t get spurious GitHubErrors on 404s, only on other expected errors whilst accessing the json in a response. All methods that return an object can now actually return None if it gets a 404 instead of just raising an exception. (Inspired by #49)
GitHubStatus API now works.
0.4: 2013-01-16¶
- In github3.legacy.LegacyRepo
has_{downloads,issues,wiki}
are now attributes.is_private()
and theprivate
attribute return the same thingis_private()
will be deprecated in the next release.
- In github3.repos.Repository
is_fork()
is now deprecated in favor of thefork
attributeis_private()
is now deprecated in favor of theprivate
attribute
- In github3.repos.Hook
is_active()
is now deprecated in favor of theactive
attribute
- In github3.pulls.PullRequest
is_mergeable()
is now deprecated in favor of themergeable
attribute
- In github3.notifications.Thread
is_unread()
is now deprecated in favor of theunread
pubsubhubbub()
is now present on theGitHub
object and will be removed from theRepository
object in the next release- 70% test coverage
0.3: 2013-01-01¶
In github3.repos.Repository
- is_fork() and fork return the same thing
- is_private() and private return the same thing as well
- has_downloads, has_issues, has_wiki are now straight attributes
In github3.repos.Hook
- is_active() and active return the same value
In github3.pulls.PullRequest
- is_mergeable() and mergeable are now the same
- repository now returns a tuple of the login and name of the repository it belongs to
In github3.notifications.Thread
- is_unread() and unread are now the same
In github3.gists
- GistFile.filename and GistFile.name return the same information
- Gist.history now lists the history of the gist
- GistHistory is an object representing one commit or version of the history
- You can retrieve gists at a specific version with GistHistory.get_gist()
github3.orgs.Organization.iter_repos now accepts all types
list_* methods on Organization objects that were missed are now deleted
Some objects now have
__str__
methods. You can now do things like:import github3 u = github3.user('sigmavirus24') r = github3.repository(u, 'github3.py')
And
import github3 r = github3.repository('sigmavirus24', 'github3.py') template = """Some kind of template where you mention this repository {0}""" print(template.format(r)) # Some kind of template where you mention this repository # sigmavirus24/github3.py
Current list of objects with this feature:
- github3.users.User (uses the login name)
- github3.users.Key (uses the key text)
- github3.users.Repository (uses the login/name pair)
- github3.users.RepoTag (uses the tag name)
- github3.users.Contents (uses the decoded content)
60% test coverage with mock
Upgrade to requests 1.0.x
0.2: 2012-11-21¶
- MAJOR API CHANGES:
GitHub.iter_subscribed
–>GitHub.iter_subscriptions
- Broken
list_*
functions in github3.api have been renamed to the correctiter_*
methods onGitHub
. - Removed
list_*
functions fromRepository
,Gist
,Organization
, andUser
objects
- Added zen of GitHub method.
- More tests
- Changed the way
Repository.edit
works courtesy of Kristian Glass (@doismellburning) - Changed
Repository.contents
behaviour when acting on a 404. - 50% test coverage via mock tests
0.1: 2012-11-13¶
- Add API for GitHub Enterprise customers.
0.1b2: 2012-11-10¶
- Handle 500 errors better, courtesy of Kristian Glass (@doismellburning)
- Handle sending json with % symbols better, courtesy of Kristian Glass
- Correctly handle non-GitHub committers and authors courtesy of Paul Swartz (@paulswartz)
- Correctly display method signatures in documentation courtesy of (@seveas)
0.1b1: 2012-10-31¶
- unit tests implemented using mock instead of hitting the GitHub API (#37)
- removed
list_*
functions from GitHub object - Notifications API coverage
0.1b0: 2012-10-06¶
- Support for the complete GitHub API (accomplished)
- Now also includes the Statuses API
- Also covers the auto_init parameters to the Repository creation methodology
- Limited implementation of iterators in the place of list functions.
- 98% coverage by unit tests