/ doc / changes.rst
changes.rst
   1  Change log
   2  ==========
   3  
   4  Stable versions
   5  ~~~~~~~~~~~~~~~
   6  
   7  Version 2.0.2
   8  -----------------------------------
   9  
  10  Breaking Changes
  11  ^^^^^^^^^^^^^^^^
  12  
  13  A Netrc file (e.g. ``~/.netrc``) does not override PyGithub authentication, any more.
  14  If you require authentication through Netrc, then this is a breaking change.
  15  Use a ``github.Auth.Netrc`` instance to use Netrc credentials:
  16  
  17  .. code-block:: python
  18  
  19      >>> auth = Auth.Netrc()
  20      >>> g = Github(auth=auth)
  21      >>> g.get_user().login
  22      'login'
  23  
  24  Version 2.0.0 (July 04, 2023)
  25  -----------------------------------
  26  
  27  Important
  28  ^^^^^^^^^
  29  
  30  **Request throttling**
  31  
  32  This release introduces a default throttling mechanism to mitigate secondary rate limit errors and comply with Github's best practices:
  33  https://docs.github.com/en/rest/guides/best-practices-for-integrators?apiVersion=2022-11-28#dealing-with-secondary-rate-limits
  34  
  35  The default throttling of 1 second between writes and 0.25 second between any requests can be configured
  36  for ``github.Github`` and ``github.GithubIntegration``:
  37  
  38  .. code-block:: python
  39  
  40      g = github.Github(seconds_between_requests=0.25, seconds_between_writes=1)
  41  
  42  Set these parameters to ``None`` to disable throttling and restore earlier behavior.
  43  
  44  **Request retry**
  45  
  46  This release introduces a default retry mechanism to retry retry-able 403 responses (primary and secondary rate limit errors only) and any 5xx response.
  47  
  48  Class ``github.GithubRetry`` implements this behavior, and can be configured via the ``retry`` argument of ``github.Github`` and ``github.GithubIntegration``.
  49  Retry behavior is configured similar to ``urllib3.Retry``: https://urllib3.readthedocs.io/en/stable/reference/urllib3.util.html
  50  
  51  .. code-block:: python
  52  
  53      g = github.Github(retry=github.GithubRetry())
  54  
  55  Set this parameter to ``None`` to disable retry mechanism and restore earlier behaviour.
  56  
  57  Breaking Changes
  58  ^^^^^^^^^^^^^^^^
  59  
  60  Any timestamps returned by this library are ``datetime`` with timezone information, usually UTC.
  61  Before this release, timestamps used to be naive ``datetime`` instances without timezone.
  62  Comparing (other than ``==``) these timestamps with naive ``datetime`` instances used to work but will now break.
  63  Add a timezone information to your ``datetime`` instances before comparison:
  64  
  65  .. code-block:: python
  66  
  67      if g.get_repo("PyGithub/PyGithub").created_at < datetime(2012, 2, 26, tzinfo=timezone.utc):
  68          ...
  69  
  70  New features
  71  ^^^^^^^^^^^^
  72  
  73  * Throttle requests to mitigate RateLimitExceededExceptions (#2145) (99155806)
  74  * Retry retryable 403 (rate limit) (#2387) (0bb72ca0)
  75  
  76  Improvements
  77  ^^^^^^^^^^^^
  78  
  79  * Make datetime objects timezone-aware (#2565) (0177f7c5)
  80  
  81  Bug Fixes
  82  ^^^^^^^^^
  83  
  84  * Fix `Branch.bypass_pull_request_allowances` failing with "nil is not an object" (#2535) (c5542a6a)
  85  
  86  Maintenance
  87  ^^^^^^^^^^^
  88  
  89  * Move to main default branch (#2566) (e66c163a)
  90  * Force Unix EOL (#2573) (094538e1)
  91  * Merge `Artifact` type stub back to source (#2553)
  92  
  93  Version 1.59.0 (June 22, 2023)
  94  -----------------------------------
  95  
  96  Important
  97  ^^^^^^^^^
  98  
  99  This release introduces new way of authentication. All authentication-related arguments ``github.Github(login_or_token=…, password=…, jwt=…, app_auth=…)``
 100  and ``github.GithubIntegration(integration_id=…, private_key=…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…)`` are replaced by a single ``auth=…`` argument.
 101  Module ``github.Auth`` provides classes for all supported ways of authentication: ``Login``, ``Token``, ``AppAuth``, ``AppAuthToken``, ``AppInstallationAuth``, ``AppUserAuth``.
 102  Old arguments are deprecated but continue to work. They are scheduled for removal for version 2.0 release.
 103  
 104  This project has decided to move all typing information from ``.pyi`` files into the respective ``.py`` source files.
 105  This will happen gradually over time.
 106  
 107  Breaking Changes
 108  ^^^^^^^^^^^^^^^^
 109  
 110  * The ``position`` argument in ``github.PullRequest.create_review_comment(position=…)`` has been renamed to ``line``.
 111    This breaks user code that calls ``create_review_comment`` with keyword argument ``position``. Call with ``line=…`` instead.
 112    Calling this method with positional arguments is not breaking.
 113  * The ``jwt_expiry``, ``jwt_issued_at`` and ``jwt_algorithm`` arguments in ``github.GithubIntegration()`` have changed their position.
 114    User code calling ``github.GithubIntegration(…)`` with these arguments as positional arguments breaks.
 115    Please use keyword arguments: ``github.GithubIntegration(…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…)``.
 116  * The ``since`` argument in ``github.PullRequest.get_review_comments(…)`` has changed position.``
 117    User code calling ``github.PullRequest.get_review_comments(…)`` with this argument as positional argument breaks.
 118    Please use keyword argument: ``github.PullRequest.get_review_comments(since=…)``.
 119  
 120  Deprecation
 121  ^^^^^^^^^^^
 122  
 123  * The use of ``github.Github(login_or_token=…)`` is deprecated, use ``github.Github(auth=github.Auth.Login(…))`` or ``github.Github(auth=github.Auth.Token(…))`` instead.
 124  * The use of ``github.Github(password=…)`` is deprecated, use ``github.Github(auth=github.Auth.Login(…))`` instead.
 125  * The use of ``github.Github(jwt=…)`` is deprecated, use ``github.Github(auth=github.AppAuth(…))`` or ``github.Github(auth=github.AppAuthToken(…))`` instead.
 126  * The use of ``github.Github(app_auth=…)`` is deprecated, use ``github.Github(auth=github.Auth.AppInstallationAuth(…))`` instead.
 127  * The use of ``github.GithubIntegration(integration_id=…, private_key=…, jwt_expiry=…, jwt_issued_at=…, jwt_algorithm=…)`` is deprecated, use ``github.GithubIntegration(auth=github.Auth.AppAuth(…))`` instead.
 128  * The use of ``github.GithubIntegration.create_jwt`` is deprecated, use ``github.Github(auth=github.Auth.AppAuth)``, ``github.Auth.AppAuth.token`` or ``github.Auth.AppAuth.create_jwt(expiration)`` instead.
 129  * The use of ``AppAuthentication`` is deprecated, use ``github.Auth.AppInstallationAuth`` instead.
 130  * The use of ``github.Github.get_app()`` without providing argument ``slug`` is deprecated, use ``github.GithubIntegration(auth=github.Auth.AppAuth(…)).get_app()``.
 131  
 132  Bug Fixes
 133  ^^^^^^^^^
 134  
 135  * Test and fix UTC issue with AppInstallationAuth (#2561) (ff3b80f8)
 136  * Make Requester.__createException robust against missing message and body (#2159) (7be3f763)
 137  * Fix auth issues with `Installation.get_repos` (#2547) (64075120)
 138  * Fix broken urls in docstrings (#2393) (f82ad61c)
 139  * Raise error on unsupported redirects, log supported redirects (#2524) (17cd0b79)
 140  * Fix GithubIntegration that uses expiring jwt (#2460) (5011548c)
 141  * Add expiration argument back to GithubIntegration.create_jwt (#2439) (822fc05c)
 142  * Add crypto extras to pyjwt, which pulls in cryptogaphy package (#2443) (554b2b28)
 143  * Remove RLock from Requester (#2446) (45f3d723)
 144  * Move CI to Python 3.11 release and 3.12 dev (#2434) (e414c322)
 145  * Pass Requester base URL to integration (#2420) (bdceae2f)
 146  
 147  Improvements
 148  ^^^^^^^^^^^^
 149  
 150  * Add Webhook Deliveries (#2508) (517ad336)
 151  * Add support for workflow jobs and steps (#1951) (804c3107)
 152  * Add support for get_app() with App authentication (#2549) (6d4b6d14)
 153  * Allow multiline comments in PullRequest (#2540) (6a21761e)
 154  * Implement `AppUserAuth` for Github App user tokens (#2546) (f291a368)
 155  * Add support for environments (#2223) (0384e2fd)
 156  * Add support for new RepositoryAdvisories API :tada: (#2483) (daf62bd4)
 157  * Make `MainClass.get_app` return completed `GithubApp` when slug is given (#2543) (84912a67)
 158  * Add authentication classes, move auth logic there (#2528) (fc2d0e15)
 159  * Add sort order and direction for getting comments (#2544) (a8e7c423)
 160  * Add `name` filter to `Repository.get_artifacts()` (#2459) (9f52e948)
 161  * Add `name`, `display_title` and `path` attributes to `WorkflowRun` (#2397) (10816389)
 162  * Add new `create_fork` arguments (#2493) (b94a83cb)
 163  * add `ref` to Deployment (#2489) (e8075c41)
 164  * Add query `check_suite_id` integer to `Workflow.get_runs` (#2466) (a4854519)
 165  * Add `generate_release_notes` parameter to `create_git_release` and `create_git_tag_and_release` (#2417) (49b3ae16)
 166  * Add example for Pull Request comments to documentation (#2390) (c2f12bdc)
 167  * Add allow_auto_merge support to Repository (#2477) (8c4b9465)
 168  * Add `artifact_id` argument to `Repository.get_artifact()` (#2458) (4fa0a5f3)
 169  * Add missing attributes to Branch (#2512) (e296dbdb)
 170  * Add allow_update_branch option to Organization (#2465) (bab4180f)
 171  * Add support for Issue.state_reason #2370 (#2392) (5aa544a1)
 172  * Add parameters to Repository.get_workflow_runs (#2408) (4198dbfb)
 173  
 174  Maintenance
 175  ^^^^^^^^^^^
 176  
 177  * Add type stub for MainClass.get_project_column (#2502) (d514222c)
 178  * Sync GithubIntegration __init__ arguments with github.Github (#2556) (ea45237d)
 179  * Update MAINTAINERS (#2545) (f4e9dcb3)
 180  * Link to stable docs, update introduction in package used by pypi, move auth arg front (#2557) (006766f9)
 181  * Merge PaginatedList.pyi back to source (#2555) (cb50dec5)
 182  * Merge GithubObject.pyi/Requester.pyi stubs back to source (#2463) (b6258f4b)
 183  * [CI] Moving linting into separate workflow (#2522) (52fc1077)
 184  * Merging 1.58.x patch release notes into master (#2525) (217d4241)
 185  * Merge AppAuthentication.pyi to source (#2519) (8e8cfb30)
 186  * Merge GithubException.pyi stubs back to source (#2464) (03a2f696)
 187  * Add missing fields from `GithubCredentials.py` to CONTRIBUTING.md (#2482) (297317ba)
 188  * Update docstring and typing for allow_forking and allow_update_branch (Repository) (#2529) (600217f0)
 189  * Bump actions/checkout from 2 to 3.1.0 (#2327) (300c5015)
 190  * RTD: install current project (def5223c)
 191  * Add current dir sys.path as well (9c96faa7)
 192  * Use use_scm_version to get current version from git tag (#2429) (3ea91a3a)
 193  
 194  Version 1.58.2 (May 09, 2023)
 195  -----------------------------------
 196  
 197  Bug Fixes
 198  ^^^^^^^^^
 199  
 200  * Fix GithubIntegration that uses expiring jwt (#2460) (5011548c)
 201  
 202  Version 1.58.1 (March 18, 2023)
 203  -----------------------------------
 204  
 205  Bug Fixes
 206  ^^^^^^^^^
 207  
 208  * Add expiration argument back to GithubIntegration.create_jwt (#2439) (822fc05c)
 209  * Add crypto extras to pyjwt, which pulls in cryptogaphy package (#2443) (554b2b28)
 210  * Remove RLock from Requester (#2446) (45f3d723)
 211  * Move CI to Python 3.11 release and 3.12 dev (#2434) (e414c322)
 212  * pass requester base URL to integration (#2420) (bdceae2f)
 213  * RTD: install current project (def5223c)
 214  * Add current dir sys.path as well (9c96faa7)
 215  * Use use_scm_version to get current version from git tag (#2429) (3ea91a3a)
 216  
 217  Version 1.58.0 (February 19, 2023)
 218  -----------------------------------
 219  
 220  Bug Fixes & Improvements
 221  ^^^^^^^^^^^^^^^^^^^^^^^^
 222  
 223  * Add unarchiving support @Tsuesun (#2391)
 224  * Support full GitHub app authentication @dblanchette (#1986)
 225  * Continue the PR #1899 @Felixoid (#2386)
 226  * feat: add allow\_forking to Repository @IbrahimAH (#2380)
 227  * Add code scanning alerts @eric-nieuwland (#2227)
 228  
 229  Version 1.57 (November 05, 2022)
 230  -----------------------------------
 231  
 232  Breaking Changes
 233  ^^^^^^^^^^^^^^^^
 234  
 235  * Add support for Python 3.11, drop support for Python 3.6 (#2332) (1e2f10dc)
 236  
 237  Bug Fixes & Improvements
 238  ^^^^^^^^^^^^^^^^^^^^^^^^
 239  
 240  * Speed up get requested reviewers and teams for pr (#2349) (6725eceb)
 241  * [WorkflowRun] - Add missing attributes (`run_started_at` & `run_attempt`), remove deprecated `unicode` type (#2273) (3a6235b5)
 242  * Add support for repository autolink references (#2016) (0fadd6be)
 243  * Add retry and pool_size to typing (#2151) (784a3efd)
 244  * Fix/types for repo topic team (#2341) (db9337a4)
 245  * Add class Artifact (#2313) (#2319) (437ff845)
 246  
 247  Version 1.56 (October 13, 2022)
 248  -----------------------------------
 249  
 250  Important
 251  ^^^^^^^^^
 252  
 253  This is the last release that will support Python 3.6.
 254  
 255  Bug Fixes & Improvements
 256  ^^^^^^^^^^^^^^^^^^^^^^^^
 257  
 258  * Create repo from template (#2090) (b50283a7)
 259  * Improve signature of Repository.create_repo (#2118) (001970d4)
 260  * Add support for 'visibility' attribute preview for Repositories (#1872) (8d1397af)
 261  * Add Repository.rename_branch method (#2089) (6452ddfe)
 262  * Add function to delete pending reviews on a pull request (#1897) (c8a945bb)
 263  * Cover all code paths in search_commits (#2087) (f1faf941)
 264  * Correctly deal when PaginatedList's data is a dict (#2084) (93b92cd2)
 265  * Add two_factor_authentication in AuthenticatedUser. (#1972) (4f00cbf2)
 266  * Add ProjectCard.edit() to the type stub (#2080) (d417e4c4)
 267  * Add method to delete Workflow runs (#2078) (b1c8eec5)
 268  * Implement organization.cancel_invitation() (#2072) (53fb4988)
 269  * Feat: Add `html_url` property in Team Class. (#1983) (6570892a)
 270  * Add support for Python 3.10 (#2073) (aa694f8e)
 271  * Add github actions secrets to org (#2006) (bc5e5950)
 272  * Correct replay for Organization.create_project() test (#2075) (fcc12368)
 273  * Fix install command example (#2043) (99e00a28)
 274  * Fix: #1671 Convert Python Bool to API Parameter for Authenticated User Notifications (#2001) (1da600a3)
 275  * Do not transform requestHeaders when logging (#1965) (1265747e)
 276  * Add type to OrderedDict (#1954) (ed7d0fe9)
 277  * Add Commit.get_pulls() to pyi (#1958) (b4664705)
 278  * Adding headers in GithubException is a breaking change (#1931) (d1644e33)
 279  
 280  Version 1.55 (April 26, 2021)
 281  -----------------------------------
 282  
 283  Breaking Changes
 284  ^^^^^^^^^^^^^^^^
 285  
 286  * Remove client_id/client_secret authentication (#1888) (901af8c8)
 287  * Adjust to Github API changes regarding emails (#1890) (2c77cfad)
 288    - This impacts what AuthenticatedUser.get_emails() returns
 289  * PublicKey.key_id could be int on Github Enterprise (#1894) (ad124ef4)
 290  * Export headers in GithubException (#1887) (ddd437a7)
 291  
 292  Bug Fixes & Improvements
 293  ^^^^^^^^^^^^^^^^^^^^^^^^
 294  
 295  * Do not import from unpackaged paths in typing (#1926) (27ba7838)
 296  * Implement hash for CompletableGithubObject (#1922) (4faff23c)
 297  * Use property decorator to improve typing compatibility (#1925) (e4168109)
 298  * Fix :rtype: directive (#1927) (54b6a97b)
 299  * Update most URLs to docs.github.com (#1896) (babcbcd0)
 300  * Tighten asserts for new Permission tests (#1893) (5aab6f5d)
 301  * Adding attributes "maintain" and "triage" to class "Permissions" (#1810) (76879613)
 302  * Add default arguments to Workflow method type annotations (#1857) (7d6bac9e)
 303  * Re-raise the exception when failing to parse JSON (#1892) (916da53b)
 304  * Allow adding attributes at the end of the list (#1807) (0245b758)
 305  * Updating links to Github documentation for deploy keys (#1850) (c27fb919)
 306  * Update PyJWT Version to 2.0+ (#1891) (a68577b7)
 307  * Use right variable in both get_check_runs() (#1889) (3003e065)
 308  * fix bad assertions in github.Project.edit (#1817) (6bae9e5c)
 309  * Test repr() for PublicKey (#1879) (e0acd8f4)
 310  * Add support for deleting repository secrets (#1868) (696793de)
 311  * Switch repository secrets to using f-strings (#1867) (aa240304)
 312  * Manually fixing paths for codecov.io to cover all project files (#1813) (b2232c89)
 313  * Add missing links to project metadata (#1789) (64f532ae)
 314  * No longer show username and password examples (#1866) (55d98373)
 315  * Adding github actions secrets (#1681) (c90c050e)
 316  * fix get_user_issues (#1842) (7db1b0c9)
 317  * Switch all string addition to using f-strings (#1774) (290b6272)
 318  * Enabling connection pool_size definition (a77d4f48)
 319  * Always define the session adapter (aaec0a0f)
 320  
 321  Version 1.54.1 (December 24, 2020)
 322  -----------------------------------
 323  
 324  * Pin pyjwt version (#1797) (31a1c007)
 325  * Add pyupgrade to pre-commit configuration (#1783) (e113e37d)
 326  * Fix #1731: Incorrect annotation (82c349ce)
 327  * Drop support for Python 3.5 (#1770) (63e4fae9)
 328  * Revert "Pin requests to <2.25 as well (#1757)" (#1763) (a806b523)
 329  * Fix stubs file for Repository (fab682a5)
 330  
 331  Version 1.54 (November 30, 2020)
 332  -----------------------------------
 333  
 334  Important
 335  ^^^^^^^^^
 336  
 337  This is the last release that will support Python 3.5.
 338  
 339  Breaking Changes
 340  ^^^^^^^^^^^^^^^^
 341  
 342  The Github.get_installation(integer) method has been removed.
 343  Repository.create_deployment()'s payload parameter is now a dictionary.
 344  
 345  Bug Fixes & Improvements
 346  ^^^^^^^^^^^^^^^^^^^^^^^^
 347  
 348  * Add support for Check Suites (#1764) (6d501b28)
 349  * Add missing preview features of Deployment and Deployment Statuses API (#1674) (197e0653)
 350  * Correct typing for Commit.get_comments() (#1765) (fcdd9eae)
 351  * Pin requests to <2.25 as well (#1757) (d159425f)
 352  * Add Support for Check Runs (#1727) (c77c0676)
 353  * Added a method for getting a user by their id (#1691) (4cfc9912)
 354  * Fix #1742 - incorrect typehint for `Installation.id` (#1743) (546f6495)
 355  * Add WorkflowRun.workflow_id (#1737) (78a29a7c)
 356  * Add support for Python 3.9 (#1735) (1bb18ab5)
 357  * Added support for the Self-Hosted actions runners API (#1684) (24251f4b)
 358  * Fix Branch protection status in the examples (#1729) (88800844)
 359  * Filter the DeprecationWarning in Team tests (#1728) (23f47539)
 360  * Added get_installations() to Organizations (#1695) (b42fb244)
 361  * Fix #1507: Add new Teams: Add or update team repository endpoint (#1509) (1c55be51)
 362  * Added support for `Repository.get_workflow_runs` parameters (#1682) (c23564dd)
 363  * feat(pullrequest): add the rebaseable attribute (#1690) (ee4c7a7e)
 364  * Add support for deleting reactions (#1708) (f7d203c0)
 365  * Correct type hint for InputGitTreeElement.sha (08b72b48)
 366  * Ignore new black formatting commit for git blame (#1680) (7ec4f155)
 367  * Format with new black (#1679) (07e29fe0)
 368  * Add get_timeline() to Issue's type stubs (#1663) (6bc9ecc8)
 369  
 370  Version 1.53 (August 18, 2020)
 371  -----------------------------------
 372  
 373  * Test Organization.get_hook() (#1660) (2646a98c)
 374  * Add method get_team_membership for user to Team  (#1658) (749e8d35)
 375  * Add typing files for OAuth classes (#1656) (429fcc73)
 376  * Fix Repository.create_repository_dispatch type signature (#1643) (f891bd61)
 377  * PaginatedList's totalCount is 0 if no last page (#1641) (69b37b4a)
 378  * Add initial support for Github Apps. (#1631) (260558c1)
 379  * Correct ``**kwargs`` typing for ``search_*`` (#1636) (165d995d)
 380  * Add delete_branch_on_merge arg to Repository.edit type stub (#1639) (15b5ae0c)
 381  * Fix type stub for MainClass.get_user (#1637) (8912be64)
 382  * Add type stub for Repository.create_fork (#1638) (de386dfb)
 383  * Correct Repository.create_pull typing harder (#1635) (5ad091d0)
 384  
 385  Version 1.52 (August 03, 2020)
 386  -----------------------------------
 387  
 388  * upload_asset with data in memory (#1601) (a7786393)
 389  * Make Issue.closed_by nullable (#1629) (06dae387)
 390  * Add support for workflow dispatch event (#1625) (16850ef1)
 391  * Do not check reaction_type before sending (#1592) (136a3e80)
 392  * Various Github Action improvement (#1610) (416f2d0f)
 393  * more flexible header splitting (#1616) (85e71361)
 394  * Create Dependabot config file (#1607) (e272f117)
 395  * Add support for deployment statuses (#1588) (048c8a1d)
 396  * Adds the 'twitter_username' attribute to NamedUser. (#1585) (079f75a7)
 397  * Create WorkflowRun.timing namedtuple from the dict (#1587) (1879518e)
 398  * Add missing properties to PullRequest.pyi (#1577) (c84fad81)
 399  * Add support for Workflow Runs (#1583) (4fb1d23f)
 400  * More precise typing for Repository.create_pull (#1581) (4ed7aaf8)
 401  * Update sphinx-rtd-theme requirement from <0.5 to <0.6 (#1563) (f9e4feeb)
 402  * More precise typing for MainClass.get_user() (#1575) (3668f866)
 403  * Small documentation correction in Repository.py (#1565) (f0f6ec83)
 404  * Remove "api_preview" parameter from type stubs and docstrings
 405    (#1559) (cc1b884c)
 406  * Upgrade actions/setup-python to v2 (#1555) (6f1640d2)
 407  * Clean up tests for GitReleaseAsset (#1546) (925764ad)
 408  * Repository.update_file() content also accepts bytes (#1543) (9fb8588b)
 409  * Fix Repository.get_issues stub (#1540) (b40b75f8)
 410  * Check all arguments of NamedUser.get_repos() (#1532) (69bfc325)
 411  * Correct Workflow typing (#1533) (f41c046f)
 412  * Remove RateLimit.rate (#1529) (7abf6004)
 413  * PullRequestReview is not a completable object (#1528) (19fc43ab)
 414  * Test more attributes (#1526) (52ec366b)
 415  * Remove pointless setters in GitReleaseAsset (#1527) (1dd1cf9c)
 416  * Drop some unimplemented methods in GitRef (#1525) (d4b61311)
 417  * Remove unneeded duplicate string checks in Branch (#1524) (61b61092)
 418  * Turn on coverage reporting for codecov (#1522) (e79b9013)
 419  * Drastically increase coverage by checking repr() (#1521) (291c4630)
 420  * Fixed formatting of docstrings for `Repository.create_git_tag_and_release()`
 421    and `StatsPunchCard`. (#1520) (ce400bc7)
 422  * Remove Repository.topics (#1505) (53d58d2b)
 423  * Small improvements to typing (#1517) (7b20b13d)
 424  * Correct Repository.get_workflows() (#1518) (8727003f)
 425  * docs(repository): correct releases link (#1514) (f7cc534d)
 426  * correct Repository.stargazers_count return type to int (#1513) (b5737d41)
 427  * Fix two RST warnings in Webhook.rst (#1512) (5a8bc203)
 428  * Filter FutureWarning for 2 test cases (#1510) (09a1d9e4)
 429  * Raise a FutureWarning on use of client_{id,secret} (#1506) (2475fa66)
 430  * Improve type signature for create_from_raw_data (#1503) (c7b5eff0)
 431  * feat(column): move, edit and delete project columns (#1497) (a32a8965)
 432  * Add support for Workflows (#1496) (a1ed7c0e)
 433  * Add create_repository_dispatch to typing files (#1502) (ba9d59c2)
 434  * Add OAuth support for GitHub applications (4b437110)
 435  * Create AccessToken entity (4a6468aa)
 436  * Extend installation attributes (61808da1)
 437  
 438  Version 1.51 (May 03, 2020)
 439  -----------------------------------
 440  
 441  * Type stubs are now packaged with the build (#1489) (6eba4506)
 442  * Travis CI is now dropped in favor of Github workflow (#1488) (d6e77ba1)
 443  * Get the project column by id (#1466) (63855409)
 444  
 445  Version 1.50 (April 26, 2020)
 446  -----------------------------------
 447  
 448  New features
 449  ^^^^^^^^^^^^
 450  
 451  * PyGithub now supports type checking thanks to (#1231) (91433fe9)
 452  * Slack is now the main channel of communication rather than Gitter (6a6e7c26)
 453  * Ability to retrieve public events (#1481) (5cf9950b)
 454  * Add and handle the maintainer_can_modify attribute in PullRequest (#1465) (e0997b43)
 455  * List matching references (#1471) (d3bc6a5c)
 456  * Add create_repository_dispatch (#1449) (edcbdfda)
 457  * Add some Organization and Repository attributes. (#1468) (3ab97d61)
 458  * Add create project method (801ea385)
 459  
 460  Bug Fixes & Improvements
 461  ^^^^^^^^^^^^^^^^^^^^^^^^
 462  
 463  * Drop use of shadow-cat for draft PRs (#1469) (84bb69ab)
 464  * AuthenticatedUser.get_organization_membership() should be str (#1473) (38b34db5)
 465  * Drop documentation for len() of PaginatedList (#1470) (70462598)
 466  * Fix param name of projectcard's move function (#1451) (bafc4efc)
 467  * Correct typos found with codespell (#1467) (83bef0f7)
 468  * Export IncompletableObject in the github namespace (#1450) (0ebdbb26)
 469  * Add GitHub Action workflow for checks (#1464) (f1401c15)
 470  * Drop unneeded ignore rule for flake8 (#1454) (b4ca9177)
 471  * Use pytest to parametrize tests (#1438) (d2e9bd69)
 472  
 473  Version 1.47 (March 15, 2020)
 474  -----------------------------------
 475  
 476  Bug Fixes & Improvements
 477  ^^^^^^^^^^^^^^^^^^^^^^^^
 478  
 479  * Add support to edit and delete a project (#1434) (f11f7395)
 480  * Add method for fetching pull requests associated with a commit (#1433) (0c55381b)
 481  * Add "get_repo_permission" to Team class (#1416) (219bde53)
 482  * Add list projects support, update tests (#1431) (e44d11d5)
 483  * Don't transform completely in PullRequest.*assignees (#1428) (b1c35499)
 484  * Add create_project support, add tests (#1429) (bf62f752)
 485  * Add draft attribute, update test (bd285248)
 486  * Docstring for Repository.create_git_tag_and_release (#1425) (bfeacded)
 487  * Create a tox docs environment (#1426) (b30c09aa)
 488  * Add Deployments API (#1424) (3d93ee1c)
 489  * Add support for editing project cards (#1418) (425280ce)
 490  * Add draft flag parameter, update tests (bd0211eb)
 491  * Switch to using pytest (#1423) (c822dd1c)
 492  * Fix GitMembership with a hammer (#1420) (f2939eb7)
 493  * Add support to reply to a Pull request comment (#1374) (1c82573d)
 494  * PullRequest.update_branch(): allow expected_head_sha to be empty (#1412) (806130e9)
 495  * Implement ProjectCard.delete() (#1417) (aeb27b78)
 496  * Add pre-commit plugin for black/isort/flake8 (#1398) (08b1c474)
 497  * Add tox (#1388) (125536fe)
 498  * Open file in text mode in scripts/add_attribute.py (#1396) (0396a493)
 499  * Silence most ResourceWarnings (#1393) (dd31a706)
 500  * Assert more attributes in Membership (#1391) (d6dee016)
 501  * Assert on changed Repository attributes (#1390) (6e3ceb19)
 502  * Add reset to the repr for Rate (#1389) (0829af81)
 503  
 504  Version 1.46 (February 11, 2020)
 505  -----------------------------------
 506  Important
 507  ^^^^^^^^^
 508  
 509  Python 2 support has been removed. If you still require Python 2, use 1.45.
 510  
 511  Bug Fixes & Improvements
 512  ^^^^^^^^^^^^^^^^^^^^^^^^
 513  
 514  * Add repo edit support for delete_branch_on_merge (#1381) (9564cd4d)
 515  * Fix mistake in Repository.create_fork() (#1383) (ad040baf)
 516  * Correct two attributes in Invitation (#1382) (882fe087)
 517  * Search repo issues by string label (#1379) (4ae1a1e5)
 518  * Correct Repository.create_git_tag_and_release() (#1362) (ead565ad)
 519  * exposed seats and filled_seats for Github Organization Plan (#1360) (06a300ae)
 520  * Repository.create_project() body is optional (#1359) (0e09983d)
 521  * Implement move action for ProjectCard (#1356) (b11add41)
 522  * Tidy up ProjectCard.get_content() (#1355) (dd80a6c0)
 523  * Added nested teams and parent (#1348) (eacabb2f)
 524  * Correct parameter for Label.edit (#1350) (16e5f989)
 525  * doc: example of Pull Request creation (#1344) (d5ad09ae)
 526  * Fix PyPI wheel deployment (#1330) (4561930b)
 527  
 528  Version 1.45 (December 29, 2019)
 529  -----------------------------------
 530  Important
 531  ^^^^^^^^^
 532  
 533  * This is the last release of PyGithub that will support Python 2.
 534  
 535  Breaking Changes
 536  ^^^^^^^^^^^^^^^^
 537  
 538  * Branch.edit_{user,team}_push_restrictions() have been removed
 539  * The new API is:
 540    - Branch.add_{user,team}_push_restrictions() to add new members
 541    - Branch.replace_{user,team}_push_restrictions() to replace all members
 542    - Branch.remove_{user,team}_push_restrictions() to remove members
 543  * The api_preview parameter to Github() has been removed.
 544  
 545  Bug Fixes & Improvements
 546  ^^^^^^^^^^^^^^^^^^^^^^^^
 547  
 548  * Allow sha=None for InputGitTreeElement (#1327) (60464f65)
 549  * Support github timeline events. (#1302) (732fd26a)
 550  * Update link to GitHub Enterprise in README (#1324) (e1537f79)
 551  * Cleanup travis config (#1322) (8189a538)
 552  * Add support for update branch  (#1317) (baddb719)
 553  * Refactor Logging tests (#1315) (b0ef1909)
 554  * Fix rtd build (b797cac0)
 555  * Add .git-blame-ignore-revs (573c674b)
 556  * Apply black to whole codebase (#1303) (6ceb9e9a)
 557  * Fix class used returning pull request comments (#1307) (f8e33620)
 558  * Support for create_fork (#1306) (2ad51f35)
 559  * Use Repository.get_contents() in tests (#1301) (e40768e0)
 560  * Allow GithubObject.update() to be passed headers (#1300) (989b635e)
 561  * Correct URL for assignees on PRs (#1296) (3170cafc)
 562  * Use inclusive ordered comparison for 'parameterized' requirement (#1281) (fb19d2f2)
 563  * Deprecate Repository.get_dir_contents() (#1285) (21e89ff1)
 564  * Apply some polish to manage.sh (#1284) (3a723252)
 565  
 566  Version 1.44.1 (November 07, 2019)
 567  -----------------------------------
 568  
 569  * Add Python 3.8 to classifiers list (#1280) (fec6034a)
 570  * Expand Topic class and add test coverage (#1252) (ac682742)
 571  * Add support for team discussions (#1246) (#1249) (ec3c8d7b)
 572  * Correct API for NamedUser.get_organization_membership (#1277) (077c80ba)
 573  * Correct header check for 2FA required (#1274) (6ad592b1)
 574  * Use replay framework for Issue142 test (#1271) (4d258d93)
 575  * Sync httpretty version requirement with setup.py (#1265) (99d38468)
 576  * Handle unicode strings when recording responses (#1253) (#1254) (faa1bbd6)
 577  * Add assignee removal/addition support to PRs (#1241) (a163ba15)
 578  * Check if the version is empty in manage.sh (#1268) (db294837)
 579  * Encode content for {create,update}_file (#1267) (bc225f9d)
 580  * Update changes.rst (#1263) (d7947d82)
 581  
 582  Version 1.44 (October 19, 2019)
 583  -----------------------------------
 584  
 585  New features
 586  ^^^^^^^^^^^^
 587  
 588  * This version supports running under Python 3 directly, and the test suite
 589    passes under both 2.7 and recent 3.x's.
 590  
 591  Bug Fixes & Improvements
 592  ^^^^^^^^^^^^^^^^^^^^^^^^
 593  
 594  * Stop ignoring unused imports and remove them (#1250) (a0765083)
 595  * Bump httpretty to be a greater or equal to (#1262) (27092fb0)
 596  * Add close all issues example (#1256) (13e2c7c7)
 597  * Add six to install_requires (#1245) (a840a906)
 598  * Implemented user organization membership. Added test case. (#1237) (e50420f7)
 599  * Create DEPLOY.md (c9ed82b2)
 600  * Support non-default URLs in GithubIntegration (#1229) (e33858a3)
 601  * Cleanup try/except import in PaginatedList (#1228) (89c967bb)
 602  * Add an IncompletableObject exception (#1227) (f91cbac2)
 603  * Fix redundant int checks (#1226) (850da5af)
 604  * Jump from notifications to related PRs/issues. (#1168) (020fbebc)
 605  * Code review bodies are optional in some cases. (#1169) (b84d9b19)
 606  * Update changes.rst (#1223) (2df7269a)
 607  * Do not auto-close issues with high priority tag (ab27ba4d)
 608  * Fix bug in repository create new file example PyGithub#1210 (#1211) (74cd6856)
 609  * Remove more Python version specific code (#1193) (a0f01cf9)
 610  * Drop use of assertEquals (#1194) (7bac694a)
 611  * Fix PR review creation. (#1184) (e90cdab0)
 612  * Add support to vulnerability alert and automated security fixes APIs (#1195) (8abd50e2)
 613  * Delete Legacy submodule (#1192) (7ddb657d)
 614  * Remove some uses of atLeastPython3 (#1191) (cca8e3a5)
 615  * Run flake8 in Travis (#1163) (f93207b4)
 616  * Fix directories for coverage in Travis (#1190) (657f87b5)
 617  * Switch to using six (#1189) (dc2f2ad8)
 618  * Update Repository.update_file() docstring (#1186) (f1ae7200)
 619  * Correct return type of MainClass.get_organizations (#1179) (6e79d270)
 620  * Add cryptography to test-requirements.txt (#1165) (9b1c1e09)
 621  
 622  Version 1.43.8 (July 20, 2019)
 623  -----------------------------------
 624  
 625  New features
 626  ^^^^^^^^^^^^
 627  
 628  * Add two factor attributes on organizations (#1132) (a0731685)
 629  * Add Repository methods for pending invitations (#1159) (57af1e05)
 630  * Adds `get_issue_events` to `PullRequest` object (#1154) (acd515aa)
 631  * Add invitee and inviter to Invitation (#1156) (0f2beaca)
 632  * Adding support for pending team invitations (#993) (edab176b)
 633  * Add support for custom base_url in GithubIntegration class (#1093) (6cd0d644)
 634  * GithubIntegration: enable getting installation (#1135) (18187045)
 635  * Add sorting capability to Organization.get_repos() (#1139) (ef6f009d)
 636  * Add new Organization.get_team_by_slug method (#1144) (4349bca1)
 637  * Add description field when creating a new team (#1125) (4a37860b)
 638  * Handle a path of / in Repository.get_contents() (#1070) (102c8208)
 639  * Add issue lock/unlock (#1107) (ec7bbcf5)
 640  
 641  Bug Fixes & Improvements
 642  ^^^^^^^^^^^^^^^^^^^^^^^^
 643  
 644  * Fix bug in recursive repository contents example (#1166) (8b6b4505)
 645  * Allow name to be specified for upload_asset (#1151) (8d2a6b53)
 646  * Fixes #1106 for GitHub Enterprise API (#1110) (54065792)
 647  
 648  Deprecation
 649  ^^^^^^^^^^^
 650  
 651  * Repository.get_file_contents() no longer works use Repository.get_contents() instead 
 652  
 653  Version 1.43.7 (April 16, 2019)
 654  -----------------------------------
 655  
 656  * Exclude tests from PyPI distribution (#1031) (78d283b9)
 657  * Add codecov badge (#1090) (4c0b54c0)
 658  
 659  Version 1.43.6 (April 05, 2019)
 660  -----------------------------------
 661  
 662  New features
 663  ^^^^^^^^^^^^
 664  
 665  * Add support for Python 3.7 (#1028) (6faa00ac)
 666  * Adding HTTP retry functionality via urllib3 (#1002) (5ae7af55)
 667  * Add new dismiss() method on PullRequestReview (#1053) (8ef71b1b)
 668  * Add since and before to `get_notifications` (#1074) (7ee6c417)
 669  * Add url parameter to include anonymous contributors in `get_contributors` (#1075) (293846be)
 670  * Provide option to extend expiration of jwt token (#1068) (86a9d8e9)
 671  
 672  Bug Fixes & Improvements
 673  ^^^^^^^^^^^^^^^^^^^^^^^^
 674  
 675  * Fix the default parameter for `PullRequest.create_review` (#1058) (118def30)
 676  * Fix `get_access_token` (#1042) (6a89eb64)
 677  * Fix `Organization.add_to_members` role passing (#1039) (480f91cf)
 678  
 679  Deprecation
 680  ^^^^^^^^^^^
 681  
 682  * Remove Status API (6efd6318)
 683  
 684  Version 1.43.5 (January 29, 2019)
 685  -----------------------------------
 686  
 687  * Add project column create card (#1003) (5f5c2764)
 688  * Fix request got an unexpected keyword argument body (#1012) (ff789dcc)
 689  * Add missing import to PullRequest (#1007) (b5122768)
 690  
 691  Version 1.43.4 (December 21, 2018)
 692  -----------------------------------
 693  
 694  New features
 695  ^^^^^^^^^^^^
 696  
 697  * Add Migration API (#899) (b4d895ed)
 698  * Add Traffic API (#977) (a433a2fe)
 699  * New in Project API: create repository project, create project column (#995) (1c0fd97d)
 700  
 701  Bug Fixes & Improvements
 702  ^^^^^^^^^^^^^^^^^^^^^^^^
 703  
 704  * Change type of GitRelease.author to NamedUser (#969) (aca50a75)
 705  * Use total_count from data in PaginatedList (#963) (ec177610)
 706  
 707  Version 1.43.3 (October 31, 2018)
 708  -----------------------------------
 709  
 710  New features
 711  ^^^^^^^^^^^^
 712  
 713  * Add support for JWT authentication (#948) (8ccf9a94)
 714  * Added support for required signatures on protected branches (#939) (8ee75a28)
 715  * Ability to filter repository collaborators (#938) (5687226b)
 716  * Mark notification as read (#932) (0a10d7cd)
 717  * Add highlight search to ``search_code`` function (#925) (1fa25670)
 718  * Adding ``suspended_at`` property to NamedUSer (#922) (c13b43ea)
 719  * Add since parameter for Gists (#914) (e18b1078)
 720  
 721  Bug Fixes & Improvements
 722  ^^^^^^^^^^^^^^^^^^^^^^^^
 723  
 724  * Fix missing parameters when reversing ``PaginatedList`` (#946) (60a684c5)
 725  * Fix unable to trigger ``RateLimitExceededException``. (#943) (972446d5)
 726  * Fix inconsistent behavior of trailing slash usage in file path (#931) (ee9f098d)
 727  * Fix handling of 301 redirects (#916) (6833245d)
 728  * Fix missing attributes of ``get_repos`` for authenticated users (#915) (c411196f)
 729  * Fix ``Repository.edit`` (#904) (7286eec0)
 730  * Improve ``__repr__`` method of Milestone class (#921) (562908cb)
 731  * Fix rate limit documentation change (#902) (974d1ec5)
 732  * Fix comments not posted in create_review() (#909) (a18eeb3a)
 733  
 734  Version 1.43.2 (September 12, 2018)
 735  -----------------------------------
 736  
 737  * Restore ``RateLimit.rate`` attribute, raise deprecation warning instead (d92389be)
 738  
 739  Version 1.43.1 (September 11, 2018)
 740  -----------------------------------
 741  
 742  New feature:
 743  
 744  * Add support for Projects (#854) (faca4ce1)
 745  
 746  Version 1.43 (September 08, 2018)
 747  -----------------------------------
 748  
 749  
 750  Bug Fixes
 751  ^^^^^^^^^
 752  
 753  * ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)
 754  * Fixed ``Gistfile.content`` (#486) (e1df09f7)
 755  * Restored NamedUser.contributions attribute (#865) (b91dee8d)
 756  
 757  New features
 758  ^^^^^^^^^^^^
 759  
 760  * Add support for repository topics (#832) (c6802b51)
 761  * Add support for required approving review count (#888) (ef16702)
 762  * Add ``Organization.invite_user`` (880)(eb80564)
 763  * Add support for search/graphql rate limit (fd8a036)
 764  
 765    + Deprecated ``RateLimit.rate``
 766    + Add `RateLimit.core <https://pygithub.readthedocs.io/en/latest/github_objects/RateLimit.html#github.RateLimit.RateLimit.core>`__, `RateLimit.search <https://pygithub.readthedocs.io/en/latest/github_objects/RateLimit.html#github.RateLimit.RateLimit.search>`__ and `RateLimit.graphql <https://pygithub.readthedocs.io/en/latest/github_objects/RateLimit.html#github.RateLimit.RateLimit.graphql>`__
 767  * Add Support search by topics (#893) (3ce0418)
 768  * Branch Protection API overhaul (#790) (171cc567)
 769  
 770    + (**breaking**) Removed Repository.protect_branch
 771    + Add `BranchProtection <https://pygithub.readthedocs.io/en/latest/github_objects/BranchProtection.html>`__
 772    + Add `RequiredPullRequestReviews <https://pygithub.readthedocs.io/en/latest/github_objects/RequiredPullRequestReviews.html>`__
 773    + Add `RequiredStatusChecks <https://pygithub.readthedocs.io/en/latest/github_objects/RequiredStatusChecks.html>`__
 774    + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc
 775  
 776  Improvements
 777  ^^^^^^^^^^^^
 778  
 779  * Add missing arguments to ``Repository.edit`` (#844) (29d23151)
 780  * Add missing attributes to Repository (#842) (2b352fb3)
 781  * Adding archival support for ``Repository.edit`` (#843) (1a90f5db)
 782  * Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae)
 783  * Allow editing of Team descriptions (#839) (c0021747)
 784  * Add description to Organizations (#838) (1d918809)
 785  * Add missing attributes for IssueEvent (#857) (7ac2a2a)
 786  * Change ``MainClass.get_repo`` default laziness (#882) (6732517)
 787  
 788  Deprecation
 789  ^^^^^^^^^^^
 790  
 791  * Removed Repository.get_protected_branch (#871) (49db6f8)
 792  
 793  
 794  Version 1.42 (August 19, 2018)
 795  -----------------------------------
 796  
 797  * Fix travis upload issue
 798  
 799  Bug Fixes
 800  ^^^^^^^^^
 801  
 802  * ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)
 803  * Fixed ``Gistfile.content`` (#486) (e1df09f7)
 804  * Restored NamedUser.contributions attribute (#865) (b91dee8d)
 805  
 806  New features
 807  
 808  * Add support for repository topics (#832) (c6802b51)
 809  * Branch Protection API overhaul (#790) (171cc567)
 810  
 811    + (**breaking**) Removed Repository.protect_branch
 812    + Add `BranchProtection <https://pygithub.readthedocs.io/en/latest/github_objects/BranchProtection.html>`__
 813    + Add `RequiredPullRequestReviews <https://pygithub.readthedocs.io/en/latest/github_objects/RequiredPullRequestReviews.html>`__
 814    + Add `RequiredStatusChecks <https://pygithub.readthedocs.io/en/latest/github_objects/RequiredStatusChecks.html>`__
 815    + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc
 816  
 817  Improvements
 818  
 819  * Add missing arguments to ``Repository.edit`` (#844) (29d23151)
 820  * Add missing properties to Repository (#842) (2b352fb3)
 821  * Adding archival support for ``Repository.edit`` (#843) (1a90f5db)
 822  * Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae)
 823  * Allow editing of Team descriptions (#839) (c0021747)
 824  * Add description to Organizations (#838) (1d918809)
 825  
 826  Version 1.41 (August 19, 2018)
 827  -----------------------------------
 828  
 829  Bug Fixes
 830  ^^^^^^^^^
 831  
 832  * ``Repository.get_archive_link`` will now NOT follow HTTP redirect and return the url instead (#858) (43d325a5)
 833  * Fixed ``Gistfile.content`` (#486) (e1df09f7)
 834  * Restored NamedUser.contributions attribute (#865) (b91dee8d)
 835  
 836  New features
 837  
 838  * Add support for repository topics (#832) (c6802b51)
 839  * Branch Protection API overhaul (#790) (171cc567)
 840  
 841    + (**breaking**) Removed Repository.protect_branch
 842    + Add `BranchProtection <https://pygithub.readthedocs.io/en/latest/github_objects/BranchProtection.html>`__
 843    + Add `RequiredPullRequestReviews <https://pygithub.readthedocs.io/en/latest/github_objects/RequiredPullRequestReviews.html>`__
 844    + Add `RequiredStatusChecks <https://pygithub.readthedocs.io/en/latest/github_objects/RequiredStatusChecks.html>`__
 845    + Add ``Branch.get_protection``, ``Branch.get_required_pull_request_reviews``, ``Branch.get_required_status_checks``, etc
 846  
 847  Improvements
 848  
 849  * Add missing arguments to ``Repository.edit`` (#844) (29d23151)
 850  * Add missing properties to Repository (#842) (2b352fb3)
 851  * Adding archival support for ``Repository.edit`` (#843) (1a90f5db)
 852  * Add ``tag_name`` and ``target_commitish`` arguments to ``GitRelease.update_release`` (#834) (790f7dae)
 853  * Allow editing of Team descriptions (#839) (c0021747)
 854  * Add description to Organizations (#838) (1d918809)
 855  
 856  Version 1.40 (June 26, 2018)
 857  -----------------------------------
 858  * Major enhancement: use requests for HTTP instead of httplib (#664) (9aed19dd)
 859  * Test Framework improvement (#795) (faa8f205)
 860  * Handle HTTP 202 HEAD & GET with a retry (#791) (3aead158)
 861  * Fix github API requests after asset upload (#771) (8bdac23c)
 862  * Add remove_membership() method to Teams class (#807) (817f2230)
 863  * Add check-in to projects using PyGithub (#814) (05f49a59)
 864  * Include target_commitish in GitRelease (#788) (ba5bf2d7)
 865  * Fix asset upload timeout, increase default timeout from 10s to 15s (#793) (140c6480)
 866  * Fix Team.description (#797) (0e8ae376)
 867  * Fix Content-Length invalid headers exception (#787) (23395f5f)
 868  * Remove NamedUser.contributions (#774) (a519e467)
 869  * Add ability to skip SSL cert verification for Github Enterprise (#758) (85a9124b)
 870  * Correct Repository.get_git_tree recursive use (#767) (bd0cf309)
 871  * Re-work PullRequest reviewer request (#765) (e2e29918)
 872  * Add support for team privacy (#763) (1f23c06a)
 873  * Add support for organization outside collaborators (#533) (c4446996)
 874  * PullRequest labels should use Issues URL (#754) (678b6b20)
 875  * Support labels for PullRequests (#752) (a308dc92)
 876  * Add get_organizations() (#748) (1e0150b5)
 877  
 878  Version 1.39 (April 10, 2018)
 879  -----------------------------------
 880  
 881  * Add documentation to github.Repository.Repository.create_git_release() (#747) (a769c2ff)
 882  * Add add_to_members() and remove_from_membership() (#741) (4da483d1)
 883  * Documentation: clarify semantics of get_comments (#743) (fec3c943)
 884  * Add download_url to ContentFile, closes #575 (ca6fbc45)
 885  * Add PullRequestComment.in_reply_to_id (#718) (eaa6a508)
 886  * Add team privacy parameter to create team (#702) (5cb5ab71)
 887  * Implement License API (#734) (b54ccc78)
 888  * Fix delete method for RepositoryKey (911bf615)
 889  * Remove edit for UserKey (722f2534)
 890  * Labels API: support description (#738) (42e75938)
 891  * Added Issue.as_pull_request() and PullReqest.as_issue() (#630) (6bf2acc7)
 892  * Documentation: sort the Github Objects (#735) (1497e826)
 893  * Add support for getting PR single review's comments. (#670) (612c3500)
 894  * Update the RepositoryKey class (#530) (5e8c6832)
 895  * Added since to PR review comments get (#577) (d8508285)
 896  * Remove some duplicate attributes introduced in #522 (566b28d3)
 897  * Added tarball_url, zipball_url, prerelease and draft property (#522) (c76e67b7)
 898  * Source Import API (#673) (864c663a)
 899  
 900  Version 1.38 (March 21, 2018)
 901  -----------------------------------
 902  
 903  * Updated readthedocs, PyPI to reflect latest version
 904  * Added option to create review for Pull request (#662) (162f0397)
 905  * Depreciate legacy search API (3cd176e3)
 906  * Filter team members  by role (#491) (10ee17a2)
 907  * Add url attribute to PullRequestReview object (#731) (0fb176fd)
 908  * Added target_commitish option to Repository.create_git_release() (#625) (0f0a7d4e)
 909  * Fix broken Github reference link in class docstrings (a32a17bf)
 910  * Add hook support for organizations (#729) (c7f6563c)
 911  * Get organization from the team (#590) (d9c5a07f)
 912  * Added search_commits (#727) (aa556f85)
 913  * Collaborator site admin (#719) (f8b23505)
 914  * Fix add_to_watched for AuthenticatedUser (#716) (6109eb3c)
 915  
 916  Version 1.37 (March 03, 2018)
 917  -----------------------------------
 918  
 919  * Add __eq__ and __hash__ to NamedUser (#706) (8a13b274)
 920  * Add maintainer can modify flag to create pull request (#703) (0e5a1d1d)
 921  * Fix typo in Design.md (#701) (98d32af4)
 922  * Add role parameter to Team.add_membership method (#638) (01ab4cc6)
 923  * Add add_membership testcase (#637) (5a1424bb)
 924  
 925  Version 1.36 (February 02, 2018)
 926  -----------------------------------
 927  
 928  * Fix changelog generation (5d911e22)
 929  * Add collaborator permission support (#699) (167f85ef)
 930  * Use datetime object in create_milestone (#698) (cef98416)
 931  * Fix date format for milestone creation (#593) (e671fdd0)
 932  * Remove the default "null" input send during GET request (#691) (cbfe8d0f)
 933  * Updated PullRequest reviewer request according to API changes (#690) (5c9c2f75)
 934  * make created_at/published_at attrs available for Release objects (#689) (2f9b1e01)
 935  * Add committer/author to Repository.delete_file (#678) (3baa682c)
 936  * Add method to get latest release of a repository (#609) (45d18436)
 937  * Add permissions field to NamedUser (#676) (6cfe46b7)
 938  * Fix all pep8 coding conventions (6bc804dc)
 939  * Add new params for /users/:user/repos endpoint (89834a9b)
 940  * Add support for changing PR head commit (#632) (3f77e537)
 941  * Use print() syntax in README (#681) (c5988c39)
 942  * Add PyPI badge and installation instructions to README (#682) (3726f686)
 943  * Drop support for EOL Python 2.5-2.6 and 3.2-3.3 (#674) (6735be49)
 944  * Add Reactions feature (#671) (ba50af53)
 945  * Add ping_url and ping to Hook (#669) (6169d8ea)
 946  * Add Repository.archived property (#657) (35333e03)
 947  * Add unit test for tree attribute of GitCommit (#668) (e5bfdbeb)
 948  * Add read_only attribute to Deploy Keys (#570) (dbc6f5ab)
 949  * Doc create instance from token (#667) (c33a3883)
 950  * Fix uploading binary files on Python 3 (#621) (317079ef)
 951  * Decode jwt bytes object in Python 3 (#633) (84b43da7)
 952  * Remove broken downloads badge (#644) (15cdc2f8)
 953  * Added missing parameters for repo creation (#623) (5c41120a)
 954  * Add ability to access github Release Asset API. (#525) (52449649)
 955  * Add 'submitted at' to PullRequestReview (#565) (ebe7277a)
 956  * Quote path for /contents API (#614) (554c1ab1)
 957  * Add Python 3.6 (2533bed9)
 958  * Add Python 3.6 (e78f0ece)
 959  * Updated references in introduction.rst (d2c72bb3)
 960  * fix failing tests on py26 (291f6dde)
 961  * Import missing exception (67b078e9)
 962  
 963  Version 1.35 (July 10, 2017)
 964  -----------------------------------
 965  
 966  * Add Support for repository collaborator invitations.
 967  
 968  Version 1.34 (abril 04, 2017)
 969  -----------------------------------
 970  
 971  * Add Support for Pull Request Reviews feature.
 972  
 973  Version 1.32 (February 1, 2017)
 974  -----------------------------------
 975  
 976  * Support for Integrations installation endpoint (656e70e1)
 977  
 978  Version 1.31 (January 30, 2017)
 979  -----------------------------------
 980  
 981  * Support HTTP 302 redirect in Organization.has_in_members (0154c6b)
 982  * Add details of repo type for get_repos documentation (f119147)
 983  * Note explicit support for Python 3.5 (3ae55f0)
 984  * Fix README instructions (5b0224e)
 985  * An easier to see link to the documentation in response to issue #480. (6039a4b)
 986  * Encode GithubObject repr values in utf-8 when using Python2 (8ab9082)
 987  * Updated documentation (4304ccd)
 988  * Added a subscribers count field (a2da7f9)
 989  * Added "add_to_assignees" & "remove_from_assignees" method to Issue object. (66430d7)
 990  * Added "assignees" attribute to PullRequest object. (c0de6be)
 991  * add html_url to GitRelease (ec633aa)
 992  * Removed unused imports (65afc3f)
 993  * Fix typo in a constant (10a28e0)
 994  * Fix changelog formatting glitch (03a9227)
 995  * Added "assignees" argument in Repository.create_issue() (ba007dc)
 996  * Enhance support of "assignees" argument in Issue.edit() (14dd9f0)
 997  * Added "assignees" attribute to Issue object. (e0e5fdf)
 998  
 999  Version 1.30 (January 30, 2017)
1000  -----------------------------------
1001  
1002  * adds GitHub integrations (d60943d)
1003  
1004  Version 1.29 (October 10, 2016)
1005  -----------------------------------
1006  
1007  * add issue assignee param (3a8edc7)
1008  * Fix diffrerent case (fcf6cfb)
1009  * DOC: remove easy_install suggestion; update links (45e76d9)
1010  * Add permission param documentation (9347345)
1011  * Add ability to set permission for team repo (5dddea7)
1012  * Fix status check (073bb44)
1013  * adds support for content dirs (0799753)
1014  
1015  Version 1.28 (September 09, 2016)
1016  -----------------------------------
1017  
1018  * test against python 3.5 (5d35284)
1019  * sort params and make them work on py3 (78374b9)
1020  * adds a nicer __repr__ (8571d87)
1021  * Add missing space (464259d)
1022  * Properly handle HTTP Proxy authentication with Python 3 (d015154)
1023  * Fix small typo (987bca0)
1024  * push to 'origin' instead of 'github' (d640666)
1025  
1026  Version 1.27.1 (August 12, 2016)
1027  -----------------------------------
1028  
1029  * upgrade release process based on travis (3c20a66)
1030  * change file content encoding to support unicode(like chinese), py2 (5404030)
1031  * adds missing testfile corrections (9134aa2)
1032  * fixed file API return values (0f29a53)
1033  * assert by str and unicode to make it more py3 friendly (7390827)
1034  * Patch issue 358 status context (#428) (70e30c5)
1035  * Adding "since" param to Issue.get_comments() (#426) (3c6f99f)
1036  * update doc url everywhere (#420) (cb0cf0a)
1037  * fix a couple typos to be clearer (#419) (23c0e75)
1038  * Document how one gets an AuthenticatedUser object (ba66862)
1039  * fix wrong expectance on requestJsonAndCheck() returning {} if no data (8985368)
1040  * Add previous_filename property to File (e1be1e6)
1041  * add changelog entry for 1.26.0 (a1f3de2)
1042  * update project files (be2e98b)
1043  * fix update/create/delete file api return value issue (8bb765a)
1044  * fix typo (a7929ac)
1045  * fix update/delete/create content return value invalid issue (a0a4511)
1046  * Follow redirects in the case of a 301 status code (c29f533)
1047  * Fix for pickling exception when deserializing GithubException. (8f8b455)
1048  * add support for the head parameter in Repository.get_pulls (397a74d)
1049  * Add:   - CommitCombinedStatus class   - get_combined_status() to Commit class to return combined status   - Add test for combined status. (5823ed7)
1050  * fix python3 compatibility issue for using json/base64 (5b7f0bb)
1051  * remove not covered API from readme (9c6f881)
1052  * change replay data for update file test case (46895df)
1053  * fix python3 compatibility error in test case (00777db)
1054  * Add repo content create/update/delete testcase (4aaeb9e)
1055  * add MAINTAINERS file (a16b55b)
1056  * travis: disable email (6347157)
1057  * fix protect branch tests (65360b0)
1058  * Add branch protection endpoint (737f0c3)
1059  * fix request parameters issue (ae37d44)
1060  * add content file create/update/delete api (b83ffbf)
1061  * Add travis button on README. (a83649b)
1062  * fix misspelling: https://github.com/PyGithub/PyGithub/issues/363 (a06b5ec)
1063  * Adding base parameter to get_pulls() method. (71593a8)
1064  * add support for the direction parameter in Repository.get_pulls (70bcb6d)
1065  * added creator parameter (ca9af4f)
1066  
1067  Version 1.27.0 (August 12, 2016)
1068  -----------------------------------
1069  
1070  * this version was never released to PyPi due to a problem with the deployment
1071  
1072  Version 1.26.0 (November 5th, 2015)
1073  -----------------------------------
1074  
1075  * Added context parameter to Status API
1076  * Changed InputGitAuthor to reflect that time is an optional parameter
1077  * Added sort option to get_pulls
1078  * Added api_preview parameter to Requester class
1079  * Return empty list instead of None for pagination with no pages
1080  * Removed URL scheme validation that broke GitHub Enterprise
1081  * Added "add_membership" call to Teams
1082  * Added support to lazily load repositories
1083  * Updated test suite to record with oauth tokens
1084  * Added support for http_proxy
1085  * Add support for filter/role options in Organization.get_members()
1086  * Changed Organization.get_members's filter parameter to _filter
1087  * Fix escaping so that labels now support whitespaces
1088  * Updated create_issue to support taking a list of strings for labels
1089  * Added support for long integers in get_repo
1090  * Fixed pagination to thread headers between requests
1091  * Added repo.get_stargazers_with_dates()
1092  
1093  Version 1.25.2 (October 7th, 2014)
1094  ----------------------------------
1095  
1096  * `Work around <https://github.com/jacquev6/PyGithub/issues/278>`__ the GitHub API v3 returning `null`\s in some paginated responses, `erichaase <https://github.com/erichaase>`__ for the bug report
1097  
1098  Version 1.25.1 (September 28th, 2014)
1099  -------------------------------------
1100  
1101  * `Fix <https://github.com/jacquev6/PyGithub/pull/275>`__ two-factor authentication header, thanks to `tradej <https://github.com/tradej>`__ for the pull request
1102  
1103  `Version 1.25.0 <https://github.com/jacquev6/PyGithub/issues?milestone=38&state=closed>`_ (May 4th, 2014)
1104  ---------------------------------------------------------------------------------------------------------
1105  
1106  * `Implement <https://github.com/jacquev6/PyGithub/pull/246>`__ getting repos by id, thanks to `tylertreat <https://github.com/tylertreat>`__ for the pull request
1107  * `Add <https://github.com/jacquev6/PyGithub/pull/247>`__ ``Gist.owner``, thanks to `dalejung <https://github.com/dalejung>`__ for the pull request
1108  
1109  `Version 1.24.1 <https://github.com/jacquev6/PyGithub/issues?milestone=37&state=closed>`_ (March 16th, 2014)
1110  ---------------------------------------------------------------------------------------------------------------
1111  
1112  * `Fix <https://github.com/jacquev6/PyGithub/pull/237>`__ urlquoting in search, thanks to `cro <https://github.com/cro>`__ for the pull request
1113  
1114  `Version 1.24.0 <https://github.com/jacquev6/PyGithub/issues?milestone=36&state=closed>`_ (March 2nd, 2014)
1115  ---------------------------------------------------------------------------------------------------------------
1116  
1117  * `Implement <https://github.com/jacquev6/PyGithub/pull/224>`__ search, thanks to `thialfihar <https://github.com/thialfihar>`__ for the pull request
1118  
1119  `Version 1.23.0 <https://github.com/jacquev6/PyGithub/issues?milestone=35&state=closed>`_ (December 23th, 2013)
1120  ---------------------------------------------------------------------------------------------------------------
1121  
1122  * `Fix <https://github.com/jacquev6/PyGithub/issues/216>`__ all that is based on headers in Python 3 (pagination, conditional request, rate_limit...), huge thanks to `cwarren-mw <https://github.com/cwarren-mw>`__ for finding the bug
1123  * `Accept <https://github.com/jacquev6/PyGithub/pull/218>`__ strings for assignees and collaborators, thanks to `farrd <https://github.com/farrd>`__
1124  * `Ease <https://github.com/jacquev6/PyGithub/pull/220>`__ two-factor authentication by adding 'onetime_password' to AuthenticatedUser.create_authorization, thanks to `cameronbwhite <https://github.com/cameronbwhite>`__
1125  
1126  `Version 1.22.0 <https://github.com/jacquev6/PyGithub/issues?milestone=34&state=closed>`_ (December 15th, 2013)
1127  ---------------------------------------------------------------------------------------------------------------
1128  
1129  * `Emojis <https://github.com/jacquev6/PyGithub/pull/209>`__, thanks to `evolvelight <https://github.com/evolvelight>`__
1130  * `Repository.stargazers_count <https://github.com/jacquev6/PyGithub/pull/212>`__, thanks to `cameronbwhite <https://github.com/cameronbwhite>`__
1131  * `User.get_teams <https://github.com/jacquev6/PyGithub/pull/213>`__, thanks to `poulp <https://github.com/poulp>`__
1132  
1133  `Version 1.21.0 <https://github.com/jacquev6/PyGithub/issues?milestone=33&state=closed>`__ (November ??th, 2013)
1134  ----------------------------------------------------------------------------------------------------------------
1135  
1136  * `Accept <https://github.com/jacquev6/PyGithub/issues/202>`__ strings as well as ``Label`` objects in ``Issue.add_to_labels``, ``Issue.remove_from_labels`` and ``Issue.set_labels``. Thank you `acdha <https://github.com/acdha>`__ for asking
1137  * `Implement <https://github.com/jacquev6/PyGithub/issues/201>`__ 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 <https://github.com/OddBloke>`__ for asking
1138  * `Add <https://github.com/jacquev6/PyGithub/issues/204>`__ parameter ``author`` to ``Repository.get_commits``. Thank you `naorrosenberg <https://github.com/naorrosenberg>`__ for asking
1139  * `Implement <https://github.com/jacquev6/PyGithub/issues/203>`__ the statistics end points. Thank you `naorrosenberg <https://github.com/naorrosenberg>`__ for asking
1140  
1141  `Version 1.20.0 <https://github.com/jacquev6/PyGithub/issues?milestone=32&state=closed>`__ (October 20th, 2013) (First Seattle edition)
1142  ---------------------------------------------------------------------------------------------------------------------------------------
1143  
1144  * `Implement <https://github.com/jacquev6/PyGithub/issues/196>`__ ``Github.get_hook(name)``. Thank you `klmitch <https://github.com/klmitch>`__ for asking
1145  * In case bad data is returned by Github API v3, `raise <https://github.com/jacquev6/PyGithub/issues/195>`__ an exception only when the user accesses the faulty attribute, not when constructing the object containing this attribute. Thank you `klmitch <https://github.com/klmitch>`__ for asking
1146  * `Fix <https://github.com/jacquev6/PyGithub/issues/199>`__ parameter public/private of ``Repository.edit``. Thank you `daireobroin449 <https://github.com/daireobroin449>`__ for reporting the issue
1147  * Remove ``Repository.create_download`` and ``NamedUser.create_gist`` as the corresponding APIs are not documented anymore
1148  
1149  `Version 1.19.0 <https://github.com/jacquev6/PyGithub/issues?milestone=31&state=closed>`__ (September 8th, 2013) (AKFish's edition)
1150  -----------------------------------------------------------------------------------------------------------------------------------
1151  
1152  * Implement `conditional requests <http://developer.github.com/guides/getting-started/#conditional-requests>`__ by the method ``GithubObject.update``. Thank you very much `akfish <https://github.com/akfish>`__ for the pull request and your collaboration!
1153  * 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 <https://github.com/akfish>`_
1154  * Implement ``Github.get_repos`` to get all public repositories
1155  * Implement ``NamedUser.has_in_following``
1156  * `Implement <https://github.com/jacquev6/PyGithub/issues/188>`__ ``Github.get_api_status``, ``Github.get_last_api_status_message`` and ``Github.get_api_status_messages``. Thank you `ruxandraburtica <https://github.com/ruxandraburtica>`__ for asking
1157  * Implement ``Github.get_rate_limit``
1158  * Add many missing attributes
1159  * Technical change: HTTP headers are now stored in retrieved objects. This is a base for new functionalities. Thank you `akfish <https://github.com/akfish>`__ for the pull request
1160  * Use the new URL to fork gists (minor change)
1161  * Use the new URL to test hooks (minor change)
1162  
1163  `Version 1.18.0 <https://github.com/jacquev6/PyGithub/issues?milestone=30&state=closed>`__ (August 21st, 2013) (Bénodet edition)
1164  --------------------------------------------------------------------------------------------------------------------------------
1165  
1166  * `Issues <https://github.com/jacquev6/PyGithub/pull/181>`_' ``repository`` attribute will never be ``None``. Thank you `stuglaser <https://github.com/stuglaser>`__ for the pull request
1167  * No more false assumption on `rate_limiting <https://github.com/jacquev6/PyGithub/pull/186>`_, and creation of ``rate_limiting_resettime``. Thank you `edjackson <https://github.com/edjackson>`__ for the pull request
1168  * `New <https://github.com/jacquev6/PyGithub/pull/187>`__ parameters ``since`` and ``until`` to ``Repository.get_commits``. Thank you `apetresc <https://github.com/apetresc>`__ for the pull request
1169  * `Catch <https://github.com/jacquev6/PyGithub/pull/182>`__ Json parsing exception for some internal server errors, and throw a better exception. Thank you `MarkRoddy <https://github.com/MarkRoddy>`__ for the pull request
1170  * `Allow <https://github.com/jacquev6/PyGithub/pull/184>`__ reversed iteration of ``PaginatedList``. Thank you `davidbrai <https://github.com/davidbrai>`__ for the pull request
1171  
1172  `Version 1.17.0 <https://github.com/jacquev6/PyGithub/issues?milestone=29&state=closed>`__ (Jully 7th, 2013) (Hamburg edition)
1173  ------------------------------------------------------------------------------------------------------------------------------
1174  
1175  * `Fix <https://github.com/jacquev6/PyGithub/pull/176>`__ bug in ``Repository.get_comment`` when using custom ``per_page``. Thank you `davidbrai <https://github.com/davidbrai>`_
1176  * `Handle <https://github.com/jacquev6/PyGithub/pull/174>`__ Http redirects in ``Repository.get_dir_contents``. Thank you `MarkRoddy <https://github.com/MarkRoddy>`_
1177  * `Implement <https://github.com/jacquev6/PyGithub/issues/173>`__ API ``/user`` in ``Github.get_users``. Thank you `rakeshcusat <https://github.com/rakeshcusat>`__ for asking
1178  * `Improve <https://github.com/jacquev6/PyGithub/pull/171>`__ the documentation. Thank you `martinqt <https://github.com/martinqt>`_
1179  
1180  Version 1.16.0 (May 31th, 2013) (Concarneau edition)
1181  ----------------------------------------------------
1182  
1183  * `Add <https://github.com/jacquev6/PyGithub/pull/170>`__ the html_url attribute to IssueComment and PullRequestComment
1184  
1185  `Version 1.15.0 <https://github.com/jacquev6/PyGithub/issues?milestone=25&state=closed>`__ (May 17th, 2013) (Switzerland edition)
1186  ---------------------------------------------------------------------------------------------------------------------------------
1187  
1188  * `Implement <https://github.com/jacquev6/PyGithub/issues/166>`__ listing of user issues with all parameters. Thank you Daehyok Shin for reporting
1189  * `Raise <https://github.com/jacquev6/PyGithub/issues/152>`__ two new specific exceptions
1190  
1191  `Version 1.14.2 <https://github.com/jacquev6/PyGithub/issues?milestone=27&state=closed>`__ (April 25th, 2013)
1192  -------------------------------------------------------------------------------------------------------------
1193  
1194  * `Fix <https://github.com/jacquev6/PyGithub/issues/158>`__ paginated requests when using secret-key oauth. Thank you `jseabold <https://github.com/jseabold>`__ for analysing the bug
1195  
1196  `Version 1.14.1 <https://github.com/jacquev6/PyGithub/issues?milestone=26&state=closed>`__ (April 25th, 2013)
1197  -------------------------------------------------------------------------------------------------------------
1198  
1199  * Set the default User-Agent header to "PyGithub/Python". (Github has `enforced the User Agent header <http://developer.github.com/changes/2013-04-24-user-agent-required/>`__ yesterday.) Thank you `jjh42 <https://github.com/jjh42>`__ for `the fix <https://github.com/jacquev6/PyGithub/pull/161>`_, thank you `jasenmh <https://github.com/jasenmh>`__ and `pconrad <https://github.com/pconrad>`__ for reporting `the issue <https://github.com/jacquev6/PyGithub/issues/160>`_.
1200  
1201  `Version 1.14.0 <https://github.com/jacquev6/PyGithub/issues?milestone=24&state=closed>`__ (April 22nd, 2013)
1202  -------------------------------------------------------------------------------------------------------------
1203  
1204  * `Improve <https://github.com/jacquev6/PyGithub/issues/156>`__ gist edition. Thank you `jasonwiener <https://github.com/jasonwiener>`__ for asking:
1205  
1206    * Delete a file with ``gist.edit(files={"name.txt": None})``
1207    * Rename a file with ``gist.edit(files={"old_name.txt": github.InputFileContent(gist.files["old_name.txt"].content, new_name="new_name.txt")})``
1208  
1209  * `Raise <https://github.com/jacquev6/PyGithub/issues/152>`__ specific exceptions. Thank you `pconrad <https://github.com/pconrad>`__ for giving me the idea
1210  
1211  Version 1.13.1 (March 28nd, 2013)
1212  ---------------------------------
1213  
1214  * `Fix <https://github.com/jacquev6/PyGithub/issues/153>`__ login/password authentication for Python 3. Thank you `sebastianstigler <https://github.com/sebastianstigler>`__ for reporting
1215  
1216  `Version 1.13.0 <https://github.com/jacquev6/PyGithub/issues?milestone=23&state=closed>`__ (March 22nd, 2013)
1217  -------------------------------------------------------------------------------------------------------------
1218  
1219  * `Fix <https://github.com/jacquev6/PyGithub/issues/143>`__ for Python 3 on case-insensitive file-systems. Thank you `ptwobrussell <https://github.com/ptwobrussell>`__ for reporting
1220  * `Expose <https://github.com/jacquev6/PyGithub/issues/144>`__ raw data returned by Github for all objects. Thank you `ptwobrussell <https://github.com/ptwobrussell>`__ for asking
1221  * `Add <https://github.com/jacquev6/PyGithub/issues/145>`__ 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 <https://github.com/ptwobrussell>`__ for asking
1222  * `Implement <https://github.com/jacquev6/PyGithub/pull/148>`__ the first part of the `Notifications <http://developer.github.com/changes/2012-10-26-notifications-api/>`__ API. Thank you `pgolm <https://github.com/pgolm>`_
1223  * `Fix <https://github.com/jacquev6/PyGithub/issues/149>`__ automated tests on Python 3.3. Thank you `bkabrda <https://github.com/bkabrda>`__ for reporting
1224  
1225  Version 1.12.2 (March 3rd, 2013)
1226  --------------------------------
1227  
1228  * `Fix <https://github.com/jacquev6/PyGithub/issues/142>`__ major issue with Python 3: Json decoding was broken. Thank you `bilderbuchi <https://github.com/bilderbuchi>`__ for reporting
1229  
1230  Version 1.12.1 (February 20th, 2013)
1231  ------------------------------------
1232  
1233  * Nothing, but packaging/upload of 1.12.0 failed
1234  
1235  `Version 1.12.0 <https://github.com/jacquev6/PyGithub/issues?milestone=22&state=closed>`__ (February 20th, 2013)
1236  ----------------------------------------------------------------------------------------------------------------
1237  
1238  * Much better documentation: http://jacquev6.github.com/PyGithub
1239  * `Implement <https://github.com/jacquev6/PyGithub/issues/140>`__ :meth:`github.Repository.Repository.get_dir_contents`. Thank you `ksookocheff-va <https://github.com/ksookocheff-va>`__ for asking
1240  
1241  `Version 1.11.1 <https://github.com/jacquev6/PyGithub/issues?milestone=21&state=closed>`__ (February 9th, 2013) (London edition)
1242  --------------------------------------------------------------------------------------------------------------------------------
1243  
1244  * Fix `bug <https://github.com/jacquev6/PyGithub/issues/139#issuecomment-13280121>`__ in lazy completion. Thank you `ianozsvald <https://github.com/ianozsvald>`__ for pinpointing it
1245  
1246  `Version 1.11.0 <https://github.com/jacquev6/PyGithub/issues?milestone=19&state=closed>`__ (February 7th, 2013)
1247  ---------------------------------------------------------------------------------------------------------------
1248  
1249  * Fix bug in PaginatedList without url parameters. Thank you `llimllib <https://github.com/llimllib>`__ for the `contribution <https://github.com/jacquev6/PyGithub/pull/133>`_
1250  * `Implement <https://github.com/jacquev6/PyGithub/issues/130>`__ :meth:`github.NamedUser.NamedUser.get_keys`
1251  * `Support PubSubHub <https://github.com/jacquev6/PyGithub/issues/129>`_: :meth:`github.Repository.Repository.subscribe_to_hub` and :meth:`github.Repository.Repository.unsubscribe_from_hub`
1252  * `Publish the oauth scopes <https://github.com/jacquev6/PyGithub/issues/134>`__ in :attr:`github.MainClass.Github.oauth_scopes`, thank you `bilderbuchi <https://github.com/bilderbuchi>`__ for asking
1253  
1254  `Version 1.10.0 <https://github.com/jacquev6/PyGithub/issues?milestone=16&state=closed>`__ (December 25th, 2012) (Christmas 2012 edition)
1255  -----------------------------------------------------------------------------------------------------------------------------------------
1256  
1257  * Major improvement: support Python 3! PyGithub is automatically tested on `Travis <http://travis-ci.org/jacquev6/PyGithub>`__ with versions 2.5, 2.6, 2.7, 3.1 and 3.2 of Python
1258  * Add a shortcut function :meth:`github.MainClass.Github.get_repo` to get a repo directly from its full name. thank you `lwc <https://github.com/lwc>`__ for the contribution
1259  * :meth:`github.MainClass.Github.get_gitignore_templates` and :meth:`github.MainClass.Github.get_gitignore_template` for APIs ``/gitignore/templates``
1260  * Add the optional ``ref`` parameter to :meth:`github.Repository.Repository.get_contents` and :meth:`github.Repository.Repository.get_readme`. Thank you `fixxxeruk <https://github.com/fixxxeruk>`__ for the contribution
1261  * 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`)
1262  
1263  `Version 1.9.1 <https://github.com/jacquev6/PyGithub/issues?milestone-17&state-closed>`__ (November 20th, 2012)
1264  ---------------------------------------------------------------------------------------------------------------
1265  
1266  * Fix an assertion failure when integers returned by Github do not fit in a Python ``int``
1267  
1268  `Version 1.9.0 <https://github.com/jacquev6/PyGithub/issues?milestone-14&state-closed>`__ (November 19th, 2012)
1269  ---------------------------------------------------------------------------------------------------------------
1270  
1271  * You can now use your client_id and client_secret to increase rate limiting without authentication
1272  * You can now send a custom User-Agent
1273  * PullRequest now has its 'assignee' attribute, thank you `mstead <https://github.com/mstead>`_
1274  * Repository.edit now has 'default_branch' parameter
1275  * create_repo has 'auto_init' and 'gitignore_template' parameters
1276  * GistComment URL is changed (see http://developer.github.com/changes/2012-10-31-gist-comment-uris)
1277  * A typo in the readme was fixed by `tymofij <https://github.com/tymofij>`_, thank you
1278  * Internal stuff:
1279  
1280    + Add encoding comment to Python files, thank you `Zearin <https://github.com/Zearin>`_
1281    + Restore support of Python 2.5
1282    + Restore coverage measurement in setup.py test
1283    + Small refactoring
1284  
1285  `Version 1.8.1 <https://github.com/jacquev6/PyGithub/issues?milestone-15&state-closed>`__ (October 28th, 2012)
1286  --------------------------------------------------------------------------------------------------------------
1287  
1288  * Repository.get_git_ref prepends "refs/" to the requested references. Thank you `simon-weber <https://github.com/simon-weber>`__ for noting the incoherence between documentation and behavior. If you feel like it's a breaking change, please see `this issue <https://github.com/jacquev6/PyGithub/issues/104>`_
1289  
1290  `Version 1.8.0 <https://github.com/jacquev6/PyGithub/issues?milestone-13&state-closed>`__ (September 30th, 2012)
1291  ----------------------------------------------------------------------------------------------------------------
1292  
1293  * Enable `Travis CI <http://travis-ci.org/#!/jacquev6/PyGithub>`_
1294  * Fix error 500 when json payload contains percent character (`%`). Thank you again `quixotique <https://github.com/quixotique>`__ for pointing that and reporting it to Github
1295  * Enable debug logging. Logger name is `"github"`. Simple logging can be enabled by `github.enable_console_debug_logging()`. Thank you `quixotique <https://github.com/quixotique>`__ for the merge request and the advice
1296  * Publish tests in the PyPi source archive to ease QA tests of the `FreeBSD port <http://www.freshports.org/devel/py-pygithub>`_. Thank you `koobs <https://github.com/koobs>`__ for maintaining this port
1297  * Switch to `Semantic Versioning <http://semver.org/>`_
1298  * Respect `pep8 Style Guide for Python Code <http://www.python.org/dev/peps/pep-0008>`_
1299  
1300  `Version 1.7 <https://github.com/jacquev6/PyGithub/issues?milestone-12&state-closed>`__ (September 12th, 2012)
1301  --------------------------------------------------------------------------------------------------------------
1302  
1303  * Be able to clear the assignee and the milestone of an Issue. Thank you `quixotique <https://github.com/quixotique>`__ for the merge request
1304  * Fix an AssertionFailure in `Organization.get_xxx` when using Github Enterprise. Thank you `mnsanghvi <https://github.com/mnsanghvi>`__ for pointing that
1305  * Expose pagination to users needing it (`PaginatedList.get_page`). Thank you `kukuts <https://github.com/kukuts>`__ for asking
1306  * Improve handling of legacy search APIs
1307  * Small refactoring (documentation, removal of old code generation artifacts)
1308  
1309  `Version 1.6 <https://github.com/jacquev6/PyGithub/issues?milestone-10&state-closed>`__ (September 8th, 2012)
1310  -------------------------------------------------------------------------------------------------------------
1311  
1312  * Restore support for Python 2.5
1313  * Implement new APIS:
1314  
1315    * /hooks (undocumented, but mentioned in http://developer.github.com/v3/repos/hooks/#create-a-hook)
1316    * `Merging <http://developer.github.com/v3/repos/merging>`_
1317    * `Starring <http://developer.github.com/v3/repos/starring>`__ and `subscriptions <http://developer.github.com/v3/repos/watching>`_
1318    * `Assignees <http://developer.github.com/v3/issues/assignees>`_
1319    * `Commit statuses <http://developer.github.com/v3/repos/statuses>`_
1320    * `Contents <http://developer.github.com/v3/repos/contents>`_, thank you `berndca <https://github.com/berndca>`__ for asking
1321  
1322  * Clarify issue and review comments on PullRequest, thank you `nixoz2k7 <https://github.com/nixoz2k7>`__ for asking
1323  
1324  `Version 1.5 <https://github.com/jacquev6/PyGithub/issues?milestone-9&state-closed>`__ (September 5th, 2012)
1325  ------------------------------------------------------------------------------------------------------------
1326  
1327  * Add a timeout option, thank you much `xobb1t <https://github.com/xobb1t>`__ for the merge request. *This drops Python 2.5 support*. I may be able to restore it in next version.
1328  * Implement `Repository.delete`, thank you `pmchen <https://github.com/pmchen>`__ for asking
1329  
1330  `Version 1.4 <https://github.com/jacquev6/PyGithub/issues?milestone-8&state-closed>`__ (August 4th, 2012)
1331  ---------------------------------------------------------------------------------------------------------
1332  
1333  * Allow connection to a custom Github URL, for Github Enterprise, thank you very much `engie <https://github.com/engie>`__ for the merge request
1334  
1335  `Version 1.3 <https://github.com/jacquev6/PyGithub/issues?milestone-7&state-closed>`__ (July 13th, 2012)
1336  --------------------------------------------------------------------------------------------------------
1337  
1338  * Implement `markdown rendering <http://developer.github.com/v3/markdown>`_
1339  * `GitAuthor.date` is now a datetime, thank you `bilderbuchi <https://github.com/bilderbuchi>`_
1340  * Fix documentation of `Github.get_gist`: `id` is a string, not an integer
1341  
1342  `Version 1.2 <https://github.com/jacquev6/PyGithub/issues?milestone-6&state-closed>`__ (June 29th, 2012)
1343  --------------------------------------------------------------------------------------------------------
1344  
1345  * Implement `legacy search APIs <http://developer.github.com/v3/search>`_, thank you `kukuts <https://github.com/kukuts>`__ for telling me Github had released them
1346  * Fix a bug with issue labels containing spaces, thank you `philipkimmey <https://github.com/philipkimmey>`__ for detecting the bug and fixing it
1347  * Clarify how collections of objects are returned by `get_*` methods, thank you `bilderbuchi <https://github.com/bilderbuchi>`__ for asking
1348  
1349  Version 1.1 (June 20th, 2012)
1350  -----------------------------
1351  
1352  * Restore compatibility with Python 2.5, thank you `pmuilu <https://github.com/pmuilu>`_
1353  * Use `package_data` instead of `data_files` for documentation files in `setup.py`, thank you `malexw <https://github.com/malexw>`__ for reporting
1354  
1355  `Version 1.0 <https://github.com/jacquev6/PyGithub/issues?milestone-2&state-closed>`__ (June 3rd, 2012)
1356  -------------------------------------------------------------------------------------------------------
1357  
1358  * Complete rewrite, with no more complicated meta-description
1359  * Full typing of attributes and parameters
1360  * Full documentation of attributes and parameters
1361  * More usable exceptions raised in case on problems with the API
1362  * Some bugs and limitations fixed, special thanks to `bilderbuchi <https://github.com/bilderbuchi>`_, `roskakori <https://github.com/roskakori>`__ and `tallforasmurf <https://github.com/tallforasmurf>`__ for reporting them!
1363  
1364  Pre-release versions
1365  ~~~~~~~~~~~~~~~~~~~~
1366  
1367  `Version 0.7 <https://github.com/jacquev6/PyGithub/issues?milestone-5&state-closed>`__ (May 26th, 2012)
1368  -------------------------------------------------------------------------------------------------------
1369  
1370  * Use PyGithub with OAuth authentication or with no authentication at all
1371  
1372  `Version 0.6 <https://github.com/jacquev6/PyGithub/issues?milestone-4&state-closed>`__ (April 17th, 2012)
1373  ---------------------------------------------------------------------------------------------------------
1374  
1375  * Fix `issue 21 <https://github.com/jacquev6/PyGithub/issues/21>`__ (KeyError when accessing repositories)
1376  * Re-completed the API with NamedUser.create_gist
1377  
1378  
1379  `Version 0.5 <https://github.com/jacquev6/PyGithub/issues?milestone-3&state-closed>`__ (March 19th, 2012)
1380  ---------------------------------------------------------------------------------------------------------
1381  
1382  * Major achievement: **all APIs are implemented**
1383  * More refactoring, of course
1384  
1385  `Version 0.4 <https://github.com/jacquev6/PyGithub/issues?milestone-1&state-closed>`__ (March 12th, 2012)
1386  ---------------------------------------------------------------------------------------------------------
1387  
1388  * The list of the not implemented APIs is shorter than the list of the implemented APIs
1389  * APIs *not implemented*:
1390  
1391    * GET `/gists/public`
1392    * GET `/issues`
1393    * GET `/repos/:owner/:repo/compare/:base...:head`
1394    * GET `/repos/:owner/:repo/git/trees/:sha?recursive-1`
1395    * POST `/repos/:owner/:repo/git/trees?base_tree-`
1396  
1397  * Gists
1398  * Autorizations
1399  * Keys
1400  * Hooks
1401  * Events
1402  * Merge pull requests
1403  * More refactoring, one more time
1404  
1405  Version 0.3 (February 26th, 2012)
1406  ---------------------------------
1407  
1408  * More refactoring
1409  * Issues, milestones and their labels
1410  * NamedUser:
1411  
1412    * emails
1413  
1414  * Repository:
1415  
1416    * downloads
1417    * tags, branches, commits and comments (not the same as "Git objects" of version 0.2)
1418    * pull requests (no automatic merge yet)
1419  
1420  * Automatic generation of the reference documentation of classes, with less "see API"s, and less errors
1421  
1422  Version 0.2 (February 23rd, 2012)
1423  ---------------------------------
1424  
1425  * Refactoring
1426  * Teams details and modification
1427  
1428    * basic attributes
1429    * list teams in organizations, on repositories
1430  
1431  * Git objects
1432  
1433    * create and get tags, references, commits, trees, blobs
1434    * list and edit references
1435  
1436  Version 0.1 (February 19th, 2012)
1437  ---------------------------------
1438  
1439  * User details and modification
1440  
1441    * basic attributes
1442    * followers, following, watching
1443    * organizations
1444    * repositories
1445  
1446  * Repository details and modification
1447  
1448    * basic attributes
1449    * forking
1450    * collaborators, contributors, watchers
1451  
1452  * Organization details and modification
1453  
1454    * basic attributes
1455    * members and public members