Change log ========== Stable versions ~~~~~~~~~~~~~~~ Version 1.31 (January 30, 2017) ----------------------------------- * Support HTTP 302 redirect in Organization.has_in_members (0154c6b) * Add details of repo type for get_repos documentation (f119147) * Note explicit support for Python 3.5 (3ae55f0) * Fix README instructions (5b0224e) * An easier to see link to the documentation in response to issue #480. (6039a4b) * Encode GithubObject repr values in utf-8 when using Python2 (8ab9082) * Updated documentation (4304ccd) * Added a subscribers count field (a2da7f9) * Added "add_to_assignees" & "remove_from_assignees" method to Issue object. (66430d7) * Added "assignees" attribute to PullRequest object. (c0de6be) * add html_url to GitRelease (ec633aa) * Removed unused imports (65afc3f) * Fix typo in a constant (10a28e0) * Fix changelog formatting glitch (03a9227) * Added "assignees" argument in Repository.create_issue() (ba007dc) * Enhance support of "assignees" argument in Issue.edit() (14dd9f0) * Added "assignees" attribute to Issue object. (e0e5fdf) Version 1.30 (January 30, 2017) ----------------------------------- * adds GitHub integrations (d60943d) Version 1.29 (October 10, 2016) ----------------------------------- * add issue assignee param (3a8edc7) * Fix diffrerent case (fcf6cfb) * DOC: remove easy_install suggestion; update links (45e76d9) * Add permission param documentation (9347345) * Add ability to set permission for team repo (5dddea7) * Fix status check (073bb44) * adds support for content dirs (0799753) Version 1.28 (September 09, 2016) ----------------------------------- * test against python 3.5 (5d35284) * sort params and make them work on py3 (78374b9) * adds a nicer __repr__ (8571d87) * Add missing space (464259d) * Properly handle HTTP Proxy authentication with Python 3 (d015154) * Fix small typo (987bca0) * push to 'origin' instead of 'github' (d640666) Version 1.27.1 (August 12, 2016) ----------------------------------- * upgrade release process based on travis (3c20a66) * change file content encoding to support unicode(like chinese), py2 (5404030) * adds missing testfile corrections (9134aa2) * fixed file API return values (0f29a53) * assert by str and unicode to make it more py3 friendly (7390827) * Patch issue 358 status context (#428) (70e30c5) * Adding "since" param to Issue.get_comments() (#426) (3c6f99f) * update doc url everywhere (#420) (cb0cf0a) * fix a couple typos to be clearer (#419) (23c0e75) * Document how one gets an AuthenticatedUser object (ba66862) * fix wrong expectance on requestJsonAndCheck() returning {} if no data (8985368) * Add previous_filename property to File (e1be1e6) * add changelog entry for 1.26.0 (a1f3de2) * update project files (be2e98b) * fix update/create/delete file api return value issue (8bb765a) * fix typo (a7929ac) * fix update/delete/create content return value invalid issue (a0a4511) * Follow redirects in the case of a 301 status code (c29f533) * Fix for pickling exception when deserializing GithubException. (8f8b455) * add support for the head parameter in Repository.get_pulls (397a74d) * Add: - CommitCombinedStatus class - get_combined_status() to Commit class to return combined status - Add test for combined status. (5823ed7) * fix python3 compatibility issue for using json/base64 (5b7f0bb) * remove not covered API from readme (9c6f881) * change replay data for update file test case (46895df) * fix python3 compatability error in test case (00777db) * Add repo content create/update/delete testcase (4aaeb9e) * add MAINTAINERS file (a16b55b) * travis: disable email (6347157) * fix protect branch tests (65360b0) * Add branch protection endpoint (737f0c3) * fix request parameters issue (ae37d44) * add content file create/update/delete api (b83ffbf) * Add travis button on README. (a83649b) * fix misspelling: https://github.com/PyGithub/PyGithub/issues/363 (a06b5ec) * Adding base parameter to get_pulls() method. (71593a8) * add support for the direction parameter in Repository.get_pulls (70bcb6d) * added creator parameter (ca9af4f) Version 1.27.0 (August 12, 2016) ----------------------------------- * this version was never released to PyPi due to a problem with the deployment Version 1.26.0 (November 5th, 2015) ----------------------------------- * Added context parameter to Status API * Changed InputGitAuthor to reflect that time is an optional parameter * Added sort option to get_pulls * Added api_preview parameter to Requester class * Return empty list instead of None for pagination with no pages * Removed URL scheme validation that broke GitHub Enterprise * Added "add_membership" call to Teams * Added support to lazily load repositories * Updated test suite to record with oauth tokens * Added support for http_proxy * Add support for filter/role options in Organization.get_members() * Changed Organization.get_members's filter parameter to _filter * Fix escaping so that labels now support whitespaces * Updated create_issue to support taking a list of strings for labels * Added support for long integers in get_repo * Fixed pagination to thread headers between requests * Added repo.get_stargazers_with_dates() 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