Change log ========== Stable versions ~~~~~~~~~~~~~~~ Version 1.25.2 (October 7th, 2014) ---------------------------------- * `Work around `__ the GitHub API v3 returning `null`s in some paginated responses, `erichaase `__ for the bug report Version 1.25.1 (September 28th, 2014) ------------------------------------- * `Fix `__ two-factor authentication header, thanks to `tradej `__ for the pull request `Version 1.25.0 `_ (May 4th, 2014) --------------------------------------------------------------------------------------------------------- * `Implement `__ getting repos by id, thanks to `tylertreat `__ for the pull request * `Add `__ ``Gist.owner``, thanks to `dalejung `__ for the pull request `Version 1.24.1 `_ (March 16th, 2014) --------------------------------------------------------------------------------------------------------------- * `Fix `__ urlquoting in search, thanks to `cro `__ for the pull request `Version 1.24.0 `_ (March 2nd, 2014) --------------------------------------------------------------------------------------------------------------- * `Implement `__ search, thanks to `thialfihar `__ for the pull request `Version 1.23.0 `_ (December 23th, 2013) --------------------------------------------------------------------------------------------------------------- * `Fix `__ all that is based on headers in Python 3 (pagination, conditional request, rate_limit...), huge thanks to `cwarren-mw `__ for finding the bug * `Accept `__ strings for assignees and collaborators, thanks to `farrd `__ * `Ease `__ two-factor authentication by adding 'onetime_password' to AuthenticatedUser.create_authorization, thanks to `cameronbwhite `__ `Version 1.22.0 `_ (December 15th, 2013) --------------------------------------------------------------------------------------------------------------- * `Emojis `__, thanks to `evolvelight `__ * `Repository.stargazers_count `__, thanks to `cameronbwhite `__ * `User.get_teams `__, thanks to `poulp `__ `Version 1.21.0 `__ (November ??th, 2013) ---------------------------------------------------------------------------------------------------------------- * `Accept `__ strings as well as ``Label`` objects in ``Issue.add_to_labels``, ``Issue.remove_from_labels`` and ``Issue.set_labels``. Thank you `acdha `__ for asking * `Implement `__ equality comparison for *completable* github objects (ie. those who have a ``url`` attribute). Warning, comparison is still not implemented for non-completable objects. This will be done in version 2.0 of PyGithub. Thank you `OddBloke `__ for asking * `Add `__ parameter ``author`` to ``Repository.get_commits``. Thank you `naorrosenberg `__ for asking * `Implement `__ the statistics end points. Thank you `naorrosenberg `__ for asking `Version 1.20.0 `__ (October 20th, 2013) (First Seattle edition) --------------------------------------------------------------------------------------------------------------------------------------- * `Implement `__ ``Github.get_hook(name)``. Thank you `klmitch `__ for asking * In case bad data is returned by Github API v3, `raise `__ an exception only when the user accesses the faulty attribute, not when constructing the object containing this attribute. Thank you `klmitch `__ for asking * `Fix `__ parameter public/private of ``Repository.edit``. Thank you `daireobroin449 `__ for reporting the issue * Remove ``Repository.create_download`` and ``NamedUser.create_gist`` as the corrensponding APIs are not documented anymore `Version 1.19.0 `__ (September 8th, 2013) (AKFish's edition) ----------------------------------------------------------------------------------------------------------------------------------- * Implement `conditional requests `__ by the method ``GithubObject.update``. Thank you very much `akfish `__ for the pull request and your collaboration! * Implement persistence of PyGithub objects: ``Github.save`` and ``Github.load``. Don't forget to ``update`` your objects after loading them, it won't decrease your rate limiting quota if nothing has changed. Again, thank you `akfish `_ * Implement ``Github.get_repos`` to get all public repositories * Implement ``NamedUser.has_in_following`` * `Implement `__ ``Github.get_api_status``, ``Github.get_last_api_status_message`` and ``Github.get_api_status_messages``. Thank you `ruxandraburtica `__ for asking * Implement ``Github.get_rate_limit`` * Add many missing attributes * Technical change: HTTP headers are now stored in retrieved objects. This is a base for new functionalities. Thank you `akfish `__ for the pull request * Use the new URL to fork gists (minor change) * Use the new URL to test hooks (minor change) `Version 1.18.0 `__ (August 21st, 2013) (Bénodet edition) -------------------------------------------------------------------------------------------------------------------------------- * `Issues `_' ``repository`` attribute will never be ``None``. Thank you `stuglaser `__ for the pull request * No more false assumption on `rate_limiting `_, and creation of ``rate_limiting_resettime``. Thank you `edjackson `__ for the pull request * `New `__ parameters ``since`` and ``until`` to ``Repository.get_commits``. Thank you `apetresc `__ for the pull request * `Catch `__ Json parsing exception for some internal server errors, and throw a better exception. Thank you `MarkRoddy `__ for the pull request * `Allow `__ reversed iteration of ``PaginatedList``. Thank you `davidbrai `__ for the pull request `Version 1.17.0 `__ (Jully 7th, 2013) (Hamburg edition) ------------------------------------------------------------------------------------------------------------------------------ * `Fix `__ bug in ``Repository.get_comment`` when using custom ``per_page``. Thank you `davidbrai `_ * `Handle `__ Http redirects in ``Repository.get_dir_contents``. Thank you `MarkRoddy `_ * `Implement `__ API ``/user`` in ``Github.get_users``. Thank you `rakeshcusat `__ for asking * `Improve `__ the documentation. Thank you `martinqt `_ Version 1.16.0 (May 31th, 2013) (Concarneau edition) ---------------------------------------------------- * `Add `__ the html_url attribute to IssueComment and PullRequestComment `Version 1.15.0 `__ (May 17th, 2013) (Switzerland edition) --------------------------------------------------------------------------------------------------------------------------------- * `Implement `__ listing of user issues with all parameters. Thank you Daehyok Shin for reporting * `Raise `__ two new specific exceptions `Version 1.14.2 `__ (April 25th, 2013) ------------------------------------------------------------------------------------------------------------- * `Fix `__ paginated requests when using secret-key oauth. Thank you `jseabold `__ for analysing the bug `Version 1.14.1 `__ (April 25th, 2013) ------------------------------------------------------------------------------------------------------------- * Set the default User-Agent header to "PyGithub/Python". (Github has `enforced the User Agent header `__ yesterday.) Thank you `jjh42 `__ for `the fix `_, thank you `jasenmh `__ and `pconrad `__ for reporting `the issue `_. `Version 1.14.0 `__ (April 22nd, 2013) ------------------------------------------------------------------------------------------------------------- * `Improve `__ gist edition. Thank you `jasonwiener `__ for asking: * Delete a file with ``gist.edit(files={"name.txt": None})`` * Rename a file with ``gist.edit(files={"old_name.txt": github.InputFileContent(gist.files["old_name.txt"].content, new_name="new_name.txt")})`` * `Raise `__ specific exceptions. Thank you `pconrad `__ for giving me the idea Version 1.13.1 (March 28nd, 2013) --------------------------------- * `Fix `__ login/password authentication for Python 3. Thank you `sebastianstigler `__ for reporting `Version 1.13.0 `__ (March 22nd, 2013) ------------------------------------------------------------------------------------------------------------- * `Fix `__ for Python 3 on case-insensitive file-systems. Thank you `ptwobrussell `__ for reporting * `Expose `__ raw data returned by Github for all objects. Thank you `ptwobrussell `__ for asking * `Add `__ a property :attr:`github.MainClass.Github.per_page` (and a parameter to the constructor) to change the number of items requested in paginated requests. Thank you again `ptwobrussell `__ for asking * `Implement `__ the first part of the `Notifications `__ API. Thank you `pgolm `_ * `Fix `__ automated tests on Python 3.3. Thank you `bkabrda `__ for reporting Version 1.12.2 (March 3rd, 2013) -------------------------------- * `Fix `__ major issue with Python 3: Json decoding was broken. Thank you `bilderbuchi `__ for reporting Version 1.12.1 (February 20th, 2013) ------------------------------------ * Nothing, but packaging/upload of 1.12.0 failed `Version 1.12.0 `__ (February 20th, 2013) ---------------------------------------------------------------------------------------------------------------- * Much better documentation: http://jacquev6.github.com/PyGithub * `Implement `__ :meth:`github.Repository.Repository.get_dir_contents`. Thank you `ksookocheff-va `__ for asking `Version 1.11.1 `__ (February 9th, 2013) (London edition) -------------------------------------------------------------------------------------------------------------------------------- * Fix `bug `__ in lazy completion. Thank you `ianozsvald `__ for pinpointing it `Version 1.11.0 `__ (February 7th, 2013) --------------------------------------------------------------------------------------------------------------- * Fix bug in PaginatedList without url parameters. Thank you `llimllib `__ for the `contribution `_ * `Implement `__ :meth:`github.NamedUser.NamedUser.get_keys` * `Support PubSubHub `_: :meth:`github.Repository.Repository.subscribe_to_hub` and :meth:`github.Repository.Repository.unsubscribe_from_hub` * `Publish the oauth scopes `__ in :attr:`github.MainClass.Github.oauth_scopes`, thank you `bilderbuchi `__ for asking `Version 1.10.0 `__ (December 25th, 2012) (Christmas 2012 edition) ----------------------------------------------------------------------------------------------------------------------------------------- * Major improvement: support Python 3! PyGithub is automaticaly tested on `Travis `__ with versions 2.5, 2.6, 2.7, 3.1 and 3.2 of Python * Add a shortcut function :meth:`github.MainClass.Github.get_repo` to get a repo directly from its full name. thank you `lwc `__ for the contribution * :meth:`github.MainClass.Github.get_gitignore_templates` and :meth:`github.MainClass.Github.get_gitignore_template` for APIs ``/gitignore/templates`` * Add the optional ``ref`` parameter to :meth:`github.Repository.Repository.get_contents` and :meth:`github.Repository.Repository.get_readme`. Thank you `fixxxeruk `__ for the contribution * Get comments for all issues and all pull requests on a repository (``GET /repos/:owner/:repo/pulls/comments``: :meth:`github.Repository.Repository.get_pulls_comments` or :meth:`github.Repository.Repository.get_pulls_review_comments`; ``GET /repos/:owner/:repo/issues/comments``: :meth:`github.Repository.Repository.get_issues_comments`) `Version 1.9.1 `__ (November 20th, 2012) --------------------------------------------------------------------------------------------------------------- * Fix an assertion failure when integers returned by Github do not fit in a Python ``int`` `Version 1.9.0 `__ (November 19th, 2012) --------------------------------------------------------------------------------------------------------------- * You can now use your client_id and client_secret to increase rate limiting without authentication * You can now send a custom User-Agent * PullRequest now has its 'assignee' attribute, thank you `mstead `_ * Repository.edit now has 'default_branch' parameter * create_repo has 'auto_init' and 'gitignore_template' parameters * GistComment URL is changed (see http://developer.github.com/changes/2012-10-31-gist-comment-uris) * A typo in the readme was fixed by `tymofij `_, thank you * Internal stuff: + Add encoding comment to Python files, thank you `Zearin `_ + Restore support of Python 2.5 + Restore coverage measurement in setup.py test + Small refactoring `Version 1.8.1 `__ (October 28th, 2012) -------------------------------------------------------------------------------------------------------------- * Repository.get_git_ref prepends "refs/" to the requested references. Thank you `simon-weber `__ for noting the incoherence between documentation and behavior. If you feel like it's a breaking change, please see `this issue `_ `Version 1.8.0 `__ (September 30th, 2012) ---------------------------------------------------------------------------------------------------------------- * Enable `Travis CI `_ * Fix error 500 when json payload contains percent character (`%`). Thank you again `quixotique `__ for pointing that and reporting it to Github * Enable debug logging. Logger name is `"github"`. Simple logging can be enabled by `github.enable_console_debug_logging()`. Thank you `quixotique `__ for the merge request and the advice * Publish tests in the PyPi source archive to ease QA tests of the `FreeBSD port `_. Thank you `koobs `__ for maintaining this port * Switch to `Semantic Versioning `_ * Respect `pep8 Style Guide for Python Code `_ `Version 1.7 `__ (September 12th, 2012) -------------------------------------------------------------------------------------------------------------- * Be able to clear the assignee and the milestone of an Issue. Thank you `quixotique `__ for the merge request * Fix an AssertionFailure in `Organization.get_xxx` when using Github Enterprise. Thank you `mnsanghvi `__ for pointing that * Expose pagination to users needing it (`PaginatedList.get_page`). Thank you `kukuts `__ for asking * Improve handling of legacy search APIs * Small refactoring (documentation, removal of old code generation artifacts) `Version 1.6 `__ (September 8th, 2012) ------------------------------------------------------------------------------------------------------------- * Restore support for Python 2.5 * Implement new APIS: * /hooks (undocumented, but mentioned in http://developer.github.com/v3/repos/hooks/#create-a-hook) * `Merging `_ * `Starring `__ and `subscriptions `_ * `Assignees `_ * `Commit statuses `_ * `Contents `_, thank you `berndca `__ for asking * Clarify issue and review comments on PullRequest, thank you `nixoz2k7 `__ for asking `Version 1.5 `__ (September 5th, 2012) ------------------------------------------------------------------------------------------------------------ * Add a timeout option, thank you much `xobb1t `__ for the merge request. *This drops Python 2.5 support*. I may be able to restore it in next version. * Implement `Repository.delete`, thank you `pmchen `__ for asking `Version 1.4 `__ (August 4th, 2012) --------------------------------------------------------------------------------------------------------- * Allow connection to a custom Github URL, for Github Enterprise, thank you very much `engie `__ for the merge request `Version 1.3 `__ (July 13th, 2012) -------------------------------------------------------------------------------------------------------- * Implement `markdown rendering `_ * `GitAuthor.date` is now a datetime, thank you `bilderbuchi `_ * Fix documentation of `Github.get_gist`: `id` is a string, not an integer `Version 1.2 `__ (June 29th, 2012) -------------------------------------------------------------------------------------------------------- * Implement `legacy search APIs `_, thank you `kukuts `__ for telling me Github had released them * Fix a bug with issue labels containing spaces, thank you `philipkimmey `__ for detecting the bug and fixing it * Clarify how collections of objects are returned by `get_*` methods, thank you `bilderbuchi `__ for asking Version 1.1 (June 20th, 2012) ----------------------------- * Restore compatibility with Python 2.5, thank you `pmuilu `_ * Use `package_data` instead of `data_files` for documentation files in `setup.py`, thank you `malexw `__ for reporting `Version 1.0 `__ (June 3rd, 2012) ------------------------------------------------------------------------------------------------------- * Complete rewrite, with no more complicated meta-description * Full typing of attributes and parameters * Full documentation of attributes and parameters * More usable exceptions raised in case on problems with the API * Some bugs and limitations fixed, special thanks to `bilderbuchi `_, `roskakori `__ and `tallforasmurf `__ for reporting them! Pre-release versions ~~~~~~~~~~~~~~~~~~~~ `Version 0.7 `__ (May 26th, 2012) ------------------------------------------------------------------------------------------------------- * Use PyGithub with OAuth authentication or with no authentication at all `Version 0.6 `__ (April 17th, 2012) --------------------------------------------------------------------------------------------------------- * Fix `issue 21 `__ (KeyError when accessing repositories) * Re-completed the API with NamedUser.create_gist `Version 0.5 `__ (March 19th, 2012) --------------------------------------------------------------------------------------------------------- * Major achievement: **all APIs are implemented** * More refactoring, of course `Version 0.4 `__ (March 12th, 2012) --------------------------------------------------------------------------------------------------------- * The list of the not implemented APIs is shorter than the list of the implemented APIs * APIs *not implemented*: * GET `/gists/public` * GET `/issues` * GET `/repos/:owner/:repo/compare/:base...:head` * GET `/repos/:owner/:repo/git/trees/:sha?recursive-1` * POST `/repos/:owner/:repo/git/trees?base_tree-` * Gists * Autorizations * Keys * Hooks * Events * Merge pull requests * More refactoring, one more time Version 0.3 (February 26th, 2012) --------------------------------- * More refactoring * Issues, milestones and their labels * NamedUser: * emails * Repository: * downloads * tags, branches, commits and comments (not the same as "Git objects" of version 0.2) * pull requests (no automatic merge yet) * Automatic generation of the reference documentation of classes, with less "see API"s, and less errors Version 0.2 (February 23rd, 2012) --------------------------------- * Refactoring * Teams details and modification * basic attributes * list teams in organizations, on repositories * Git objects * create and get tags, references, commits, trees, blobs * list and edit references Version 0.1 (February 19th, 2012) --------------------------------- * User details and modification * basic attributes * followers, following, watching * organizations * repositories * Repository details and modification * basic attributes * forking * collaborators, contributors, watchers * Organization details and modification * basic attributes * members and public members