Change log ========== Stable versions ~~~~~~~~~~~~~~~ `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``s. 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