{"action":"closed","number":442,"pull_request":{"url":"https://api.github.com/repos/betterlife/psi/pulls/442","id":182436672,"html_url":"https://github.com/betterlife/psi/pull/442","diff_url":"https://github.com/betterlife/psi/pull/442.diff","patch_url":"https://github.com/betterlife/psi/pull/442.patch","issue_url":"https://api.github.com/repos/betterlife/psi/issues/442","number":442,"state":"closed","locked":false,"title":"Update coverage to 4.5.1","user":{"login":"pyup-bot","id":16239342,"avatar_url":"https://avatars0.githubusercontent.com/u/16239342?v=4","gravatar_id":"","url":"https://api.github.com/users/pyup-bot","html_url":"https://github.com/pyup-bot","followers_url":"https://api.github.com/users/pyup-bot/followers","following_url":"https://api.github.com/users/pyup-bot/following{/other_user}","gists_url":"https://api.github.com/users/pyup-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/pyup-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyup-bot/subscriptions","organizations_url":"https://api.github.com/users/pyup-bot/orgs","repos_url":"https://api.github.com/users/pyup-bot/repos","events_url":"https://api.github.com/users/pyup-bot/events{/privacy}","received_events_url":"https://api.github.com/users/pyup-bot/received_events","type":"User","site_admin":false},"body":"\nThis PR updates [coverage](https://pypi.org/project/coverage) from **4.3.1** to **4.5.1**.\n\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 4.5.1\n   ```\n   ----------------------------\n\n- Now that 4.5 properly separated the ``[run] omit`` and ``[report] omit``\n  settings, an old bug has become apparent.  If you specified a package name\n  for ``[run] source``, then omit patterns weren&#39;t matched inside that package.\n  This bug (`issue 638`_) is now fixed.\n\n- On Python 3.7, reporting about a decorated function with no body other than a\n  docstring would crash coverage.py with an IndexError (`issue 640`_).  This is\n  now fixed.\n\n- Configurer plugins are now reported in the output of ``--debug=sys``.\n\n.. _issue 638: https://bitbucket.org/ned/coveragepy/issues/638/run-omit-is-ignored-since-45\n.. _issue 640: https://bitbucket.org/ned/coveragepy/issues/640/indexerror-reporting-on-an-empty-decorated\n\n\n.. _changes_45:\n   ```\n   \n  \n  \n   ### 4.5\n   ```\n   --------------------------\n\n- A new kind of plugin is supported: configurators are invoked at start-up to\n  allow more complex configuration than the .coveragerc file can easily do.\n  See :ref:`api_plugin` for details.  This solves the complex configuration\n  problem described in `issue 563`_.\n\n- The ``fail_under`` option can now be a float.  Note that you must specify the\n  ``[report] precision`` configuration option for the fractional part to be\n  used.  Thanks to Lars Hupfeldt Nielsen for help with the implementation.\n  Fixes `issue 631`_.\n\n- The ``include`` and ``omit`` options can be specified for both the ``[run]``\n  and ``[report]`` phases of execution.  4.4.2 introduced some incorrect\n  interactions between those phases, where the options for one were confused\n  for the other.  This is now corrected, fixing `issue 621`_ and `issue 622`_.\n  Thanks to Daniel Hahler for seeing more clearly than I could.\n\n- The ``coverage combine`` command used to always overwrite the data file, even\n  when no data had been read from apparently combinable files.  Now, an error\n  is raised if we thought there were files to combine, but in fact none of them\n  could be used.  Fixes `issue 629`_.\n\n- The ``coverage combine`` command could get confused about path separators\n  when combining data collected on Windows with data collected on Linux, as\n  described in `issue 618`_.  This is now fixed: the result path always uses\n  the path separator specified in the ``[paths]`` result.\n\n- On Windows, the HTML report could fail when source trees are deeply nested,\n  due to attempting to create HTML filenames longer than the 250-character\n  maximum.  Now filenames will never get much larger than 200 characters,\n  fixing `issue 627`_.  Thanks to Alex Sandro for helping with the fix.\n\n.. _issue 563: https://bitbucket.org/ned/coveragepy/issues/563/platform-specific-configuration\n.. _issue 618: https://bitbucket.org/ned/coveragepy/issues/618/problem-when-combining-windows-generated\n.. _issue 621: https://bitbucket.org/ned/coveragepy/issues/621/include-ignored-warning-when-using\n.. _issue 622: https://bitbucket.org/ned/coveragepy/issues/622/report-omit-overwrites-run-omit\n.. _issue 627: https://bitbucket.org/ned/coveragepy/issues/627/failure-generating-html-reports-when-the\n.. _issue 629: https://bitbucket.org/ned/coveragepy/issues/629/multiple-use-of-combine-leads-to-empty\n.. _issue 631: https://bitbucket.org/ned/coveragepy/issues/631/precise-coverage-percentage-value\n\n\n.. _changes_442:\n   ```\n   \n  \n  \n   ### 4.4.2\n   ```\n   ----------------------------\n\n- Support for Python 3.7.  In some cases, class and module docstrings are no\n  longer counted in statement totals, which could slightly change your total\n  results.\n\n- Specifying both ``--source`` and ``--include`` no longer silently ignores the\n  include setting, instead it displays a warning. Thanks, Loïc Dachary.  Closes\n  `issue 265`_ and `issue 101`_.\n\n- Fixed a race condition when saving data and multiple threads are tracing\n  (`issue 581`_). It could produce a &quot;dictionary changed size during iteration&quot;\n  RuntimeError.  I believe this mostly but not entirely fixes the race\n  condition.  A true fix would likely be too expensive.  Thanks, Peter Baughman\n  for the debugging, and Olivier Grisel for the fix with tests.\n\n- Configuration values which are file paths will now apply tilde-expansion,\n  closing `issue 589`_.\n\n- Now secondary config files like tox.ini and setup.cfg can be specified\n  explicitly, and prefixed sections like `[coverage:run]` will be read. Fixes\n  `issue 588`_.\n\n- Be more flexible about the command name displayed by help, fixing\n  `issue 600`_. Thanks, Ben Finney.\n\n.. _issue 101: https://bitbucket.org/ned/coveragepy/issues/101/settings-under-report-affect-running\n.. _issue 581: https://bitbucket.org/ned/coveragepy/issues/581/race-condition-when-saving-data-under\n.. _issue 588: https://bitbucket.org/ned/coveragepy/issues/588/using-rcfile-path-to-toxini-uses-run\n.. _issue 589: https://bitbucket.org/ned/coveragepy/issues/589/allow-expansion-in-coveragerc\n.. _issue 600: https://bitbucket.org/ned/coveragepy/issues/600/get-program-name-from-command-line-when\n\n\n.. _changes_441:\n   ```\n   \n  \n  \n   ### 4.4.1\n   ```\n   ----------------------------\n\n- No code changes: just corrected packaging for Python 2.7 Linux wheels.\n\n\n.. _changes_44:\n   ```\n   \n  \n  \n   ### 4.4\n   ```\n   --------------------------\n\n- Reports could produce the wrong file names for packages, reporting ``pkg.py``\n  instead of the correct ``pkg/__init__.py``.  This is now fixed.  Thanks, Dirk\n  Thomas.\n\n- XML reports could produce ``&lt;source&gt;`` and ``&lt;class&gt;`` lines that together\n  didn&#39;t specify a valid source file path.  This is now fixed. (`issue 526`_)\n\n- Namespace packages are no longer warned as having no code. (`issue 572`_)\n\n- Code that uses ``sys.settrace(sys.gettrace())`` in a file that wasn&#39;t being\n  coverage-measured would prevent correct coverage measurement in following\n  code. An example of this was running doctests programmatically. This is now\n  fixed. (`issue 575`_)\n\n- Errors printed by the ``coverage`` command now go to stderr instead of\n  stdout.\n\n- Running ``coverage xml`` in a directory named with non-ASCII characters would\n  fail under Python 2. This is now fixed. (`issue 573`_)\n\n.. _issue 526: https://bitbucket.org/ned/coveragepy/issues/526/generated-xml-invalid-paths-for-cobertura\n.. _issue 572: https://bitbucket.org/ned/coveragepy/issues/572/no-python-source-warning-for-namespace\n.. _issue 573: https://bitbucket.org/ned/coveragepy/issues/573/cant-generate-xml-report-if-some-source\n.. _issue 575: https://bitbucket.org/ned/coveragepy/issues/575/running-doctest-prevents-complete-coverage\n   ```\n   \n  \n  \n   ### 4.4b1\n   ```\n   ----------------------------\n\n- Some warnings can now be individually disabled.  Warnings that can be\n  disabled have a short name appended.  The ``[run] disable_warnings`` setting\n  takes a list of these warning names to disable. Closes both `issue 96`_ and\n  `issue 355`_.\n\n- The XML report now includes attributes from version 4 of the Cobertura XML\n  format, fixing `issue 570`_.\n\n- In previous versions, calling a method that used collected data would prevent\n  further collection.  For example, `save()`, `report()`, `html_report()`, and\n  others would all stop collection.  An explicit `start()` was needed to get it\n  going again.  This is no longer true.  Now you can use the collected data and\n  also continue measurement. Both `issue 79`_ and `issue 448`_ described this\n  problem, and have been fixed.\n\n- Plugins can now find unexecuted files if they choose, by implementing the\n  `find_executable_files` method.  Thanks, Emil Madsen.\n\n- Minimal IronPython support. You should be able to run IronPython programs\n  under ``coverage run``, though you will still have to do the reporting phase\n  with CPython.\n\n- Coverage.py has long had a special hack to support CPython&#39;s need to measure\n  the coverage of the standard library tests. This code was not installed by\n  kitted versions of coverage.py.  Now it is.\n\n.. _issue 79: https://bitbucket.org/ned/coveragepy/issues/79/save-prevents-harvesting-on-stop\n.. _issue 96: https://bitbucket.org/ned/coveragepy/issues/96/unhelpful-warnings-produced-when-using\n.. _issue 355: https://bitbucket.org/ned/coveragepy/issues/355/warnings-should-be-suppressable\n.. _issue 448: https://bitbucket.org/ned/coveragepy/issues/448/save-and-html_report-prevent-further\n.. _issue 570: https://bitbucket.org/ned/coveragepy/issues/570/cobertura-coverage-04dtd-support\n\n\n.. _changes_434:\n   ```\n   \n  \n  \n   ### 4.3.4\n   ```\n   ----------------------------\n\n- Fixing 2.6 in version 4.3.3 broke other things, because the too-tricky\n  exception wasn&#39;t properly derived from Exception, described in `issue 556`_.\n  A newb mistake; it hasn&#39;t been a good few days.\n\n.. _issue 556: https://bitbucket.org/ned/coveragepy/issues/556/43-fails-if-there-are-html-files-in-the\n\n\n.. _changes_433:\n   ```\n   \n  \n  \n   ### 4.3.3\n   ```\n   ----------------------------\n\n- Python 2.6 support was broken due to a testing exception imported for the\n  benefit of the coverage.py test suite.  Properly conditionalizing it fixed\n  `issue 554`_ so that Python 2.6 works again.\n\n.. _issue 554: https://bitbucket.org/ned/coveragepy/issues/554/traceback-on-python-26-starting-with-432\n\n\n.. _changes_432:\n   ```\n   \n  \n  \n   ### 4.3.2\n   ```\n   ----------------------------\n\n- Using the ``--skip-covered`` option on an HTML report with 100% coverage\n  would cause a &quot;No data to report&quot; error, as reported in `issue 549`_. This is\n  now fixed; thanks, Loïc Dachary.\n\n- If-statements can be optimized away during compilation, for example, `if 0:`\n  or `if __debug__:`.  Coverage.py had problems properly understanding these\n  statements which existed in the source, but not in the compiled bytecode.\n  This problem, reported in `issue 522`_, is now fixed.\n\n- If you specified ``--source`` as a directory, then coverage.py would look for\n  importable Python files in that directory, and could identify ones that had\n  never been executed at all.  But if you specified it as a package name, that\n  detection wasn&#39;t performed.  Now it is, closing `issue 426`_. Thanks to Loïc\n  Dachary for the fix.\n\n- If you started and stopped coverage measurement thousands of times in your\n  process, you could crash Python with a &quot;Fatal Python error: deallocating\n  None&quot; error.  This is now fixed.  Thanks to Alex Groce for the bug report.\n\n- On PyPy, measuring coverage in subprocesses could produce a warning: &quot;Trace\n  function changed, measurement is likely wrong: None&quot;.  This was spurious, and\n  has been suppressed.\n\n- Previously, coverage.py couldn&#39;t start on Jython, due to that implementation\n  missing the multiprocessing module (`issue 551`_). This problem has now been\n  fixed. Also, `issue 322`_ about not being able to invoke coverage\n  conveniently, seems much better: ``jython -m coverage run myprog.py`` works\n  properly.\n\n- Let&#39;s say you ran the HTML report over and over again in the same output\n  directory, with ``--skip-covered``. And imagine due to your heroic\n  test-writing efforts, a file just achieved the goal of 100% coverage. With\n  coverage.py 4.3, the old HTML file with the less-than-100% coverage would be\n  left behind.  This file is now properly deleted.\n\n.. _issue 322: https://bitbucket.org/ned/coveragepy/issues/322/cannot-use-coverage-with-jython\n.. _issue 426: https://bitbucket.org/ned/coveragepy/issues/426/difference-between-coverage-results-with\n.. _issue 522: https://bitbucket.org/ned/coveragepy/issues/522/incorrect-branch-reporting-with-__debug__\n.. _issue 549: https://bitbucket.org/ned/coveragepy/issues/549/skip-covered-with-100-coverage-throws-a-no\n.. _issue 551: https://bitbucket.org/ned/coveragepy/issues/551/coveragepy-cannot-be-imported-in-jython27\n\n\n.. _changes_431:\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/coverage\n  - Changelog: https://pyup.io/changelogs/coverage/\n  - Repo: https://bitbucket.org/ned/coveragepy\n</details>\n\n","created_at":"2018-04-18T10:37:11Z","updated_at":"2018-05-03T16:47:18Z","closed_at":"2018-05-03T16:47:18Z","merged_at":null,"merge_commit_sha":"6a4c812539d959e73782f40fe7ae27a59a5525c3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/betterlife/psi/pulls/442/commits","review_comments_url":"https://api.github.com/repos/betterlife/psi/pulls/442/comments","review_comment_url":"https://api.github.com/repos/betterlife/psi/pulls/comments{/number}","comments_url":"https://api.github.com/repos/betterlife/psi/issues/442/comments","statuses_url":"https://api.github.com/repos/betterlife/psi/statuses/748676a1c42eaa282ab4a020660415ae449eda19","head":{"label":"betterlife:pyup-update-coverage-4.3.1-to-4.5.1","ref":"pyup-update-coverage-4.3.1-to-4.5.1","sha":"748676a1c42eaa282ab4a020660415ae449eda19","user":{"login":"betterlife","id":6047592,"avatar_url":"https://avatars2.githubusercontent.com/u/6047592?v=4","gravatar_id":"","url":"https://api.github.com/users/betterlife","html_url":"https://github.com/betterlife","followers_url":"https://api.github.com/users/betterlife/followers","following_url":"https://api.github.com/users/betterlife/following{/other_user}","gists_url":"https://api.github.com/users/betterlife/gists{/gist_id}","starred_url":"https://api.github.com/users/betterlife/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/betterlife/subscriptions","organizations_url":"https://api.github.com/users/betterlife/orgs","repos_url":"https://api.github.com/users/betterlife/repos","events_url":"https://api.github.com/users/betterlife/events{/privacy}","received_events_url":"https://api.github.com/users/betterlife/received_events","type":"Organization","site_admin":false},"repo":{"id":37696073,"name":"psi","full_name":"betterlife/psi","owner":{"login":"betterlife","id":6047592,"avatar_url":"https://avatars2.githubusercontent.com/u/6047592?v=4","gravatar_id":"","url":"https://api.github.com/users/betterlife","html_url":"https://github.com/betterlife","followers_url":"https://api.github.com/users/betterlife/followers","following_url":"https://api.github.com/users/betterlife/following{/other_user}","gists_url":"https://api.github.com/users/betterlife/gists{/gist_id}","starred_url":"https://api.github.com/users/betterlife/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/betterlife/subscriptions","organizations_url":"https://api.github.com/users/betterlife/orgs","repos_url":"https://api.github.com/users/betterlife/repos","events_url":"https://api.github.com/users/betterlife/events{/privacy}","received_events_url":"https://api.github.com/users/betterlife/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/betterlife/psi","description":"Betterlife Intelligent PSI(Purchase, Sales and Inventory) system","fork":false,"url":"https://api.github.com/repos/betterlife/psi","forks_url":"https://api.github.com/repos/betterlife/psi/forks","keys_url":"https://api.github.com/repos/betterlife/psi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/betterlife/psi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/betterlife/psi/teams","hooks_url":"https://api.github.com/repos/betterlife/psi/hooks","issue_events_url":"https://api.github.com/repos/betterlife/psi/issues/events{/number}","events_url":"https://api.github.com/repos/betterlife/psi/events","assignees_url":"https://api.github.com/repos/betterlife/psi/assignees{/user}","branches_url":"https://api.github.com/repos/betterlife/psi/branches{/branch}","tags_url":"https://api.github.com/repos/betterlife/psi/tags","blobs_url":"https://api.github.com/repos/betterlife/psi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/betterlife/psi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/betterlife/psi/git/refs{/sha}","trees_url":"https://api.github.com/repos/betterlife/psi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/betterlife/psi/statuses/{sha}","languages_url":"https://api.github.com/repos/betterlife/psi/languages","stargazers_url":"https://api.github.com/repos/betterlife/psi/stargazers","contributors_url":"https://api.github.com/repos/betterlife/psi/contributors","subscribers_url":"https://api.github.com/repos/betterlife/psi/subscribers","subscription_url":"https://api.github.com/repos/betterlife/psi/subscription","commits_url":"https://api.github.com/repos/betterlife/psi/commits{/sha}","git_commits_url":"https://api.github.com/repos/betterlife/psi/git/commits{/sha}","comments_url":"https://api.github.com/repos/betterlife/psi/comments{/number}","issue_comment_url":"https://api.github.com/repos/betterlife/psi/issues/comments{/number}","contents_url":"https://api.github.com/repos/betterlife/psi/contents/{+path}","compare_url":"https://api.github.com/repos/betterlife/psi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/betterlife/psi/merges","archive_url":"https://api.github.com/repos/betterlife/psi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/betterlife/psi/downloads","issues_url":"https://api.github.com/repos/betterlife/psi/issues{/number}","pulls_url":"https://api.github.com/repos/betterlife/psi/pulls{/number}","milestones_url":"https://api.github.com/repos/betterlife/psi/milestones{/number}","notifications_url":"https://api.github.com/repos/betterlife/psi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/betterlife/psi/labels{/name}","releases_url":"https://api.github.com/repos/betterlife/psi/releases{/id}","deployments_url":"https://api.github.com/repos/betterlife/psi/deployments","created_at":"2015-06-19T02:00:10Z","updated_at":"2018-05-03T16:46:54Z","pushed_at":"2018-05-03T16:46:50Z","git_url":"git://github.com/betterlife/psi.git","ssh_url":"git@github.com:betterlife/psi.git","clone_url":"https://github.com/betterlife/psi.git","svn_url":"https://github.com/betterlife/psi","homepage":"","size":3258,"stargazers_count":18,"watchers_count":18,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":37,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":9,"open_issues":37,"watchers":18,"default_branch":"master"}},"base":{"label":"betterlife:master","ref":"master","sha":"80c7420b4f632f1d1abcb7c09746eb2241a9862c","user":{"login":"betterlife","id":6047592,"avatar_url":"https://avatars2.githubusercontent.com/u/6047592?v=4","gravatar_id":"","url":"https://api.github.com/users/betterlife","html_url":"https://github.com/betterlife","followers_url":"https://api.github.com/users/betterlife/followers","following_url":"https://api.github.com/users/betterlife/following{/other_user}","gists_url":"https://api.github.com/users/betterlife/gists{/gist_id}","starred_url":"https://api.github.com/users/betterlife/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/betterlife/subscriptions","organizations_url":"https://api.github.com/users/betterlife/orgs","repos_url":"https://api.github.com/users/betterlife/repos","events_url":"https://api.github.com/users/betterlife/events{/privacy}","received_events_url":"https://api.github.com/users/betterlife/received_events","type":"Organization","site_admin":false},"repo":{"id":37696073,"name":"psi","full_name":"betterlife/psi","owner":{"login":"betterlife","id":6047592,"avatar_url":"https://avatars2.githubusercontent.com/u/6047592?v=4","gravatar_id":"","url":"https://api.github.com/users/betterlife","html_url":"https://github.com/betterlife","followers_url":"https://api.github.com/users/betterlife/followers","following_url":"https://api.github.com/users/betterlife/following{/other_user}","gists_url":"https://api.github.com/users/betterlife/gists{/gist_id}","starred_url":"https://api.github.com/users/betterlife/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/betterlife/subscriptions","organizations_url":"https://api.github.com/users/betterlife/orgs","repos_url":"https://api.github.com/users/betterlife/repos","events_url":"https://api.github.com/users/betterlife/events{/privacy}","received_events_url":"https://api.github.com/users/betterlife/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/betterlife/psi","description":"Betterlife Intelligent PSI(Purchase, Sales and Inventory) system","fork":false,"url":"https://api.github.com/repos/betterlife/psi","forks_url":"https://api.github.com/repos/betterlife/psi/forks","keys_url":"https://api.github.com/repos/betterlife/psi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/betterlife/psi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/betterlife/psi/teams","hooks_url":"https://api.github.com/repos/betterlife/psi/hooks","issue_events_url":"https://api.github.com/repos/betterlife/psi/issues/events{/number}","events_url":"https://api.github.com/repos/betterlife/psi/events","assignees_url":"https://api.github.com/repos/betterlife/psi/assignees{/user}","branches_url":"https://api.github.com/repos/betterlife/psi/branches{/branch}","tags_url":"https://api.github.com/repos/betterlife/psi/tags","blobs_url":"https://api.github.com/repos/betterlife/psi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/betterlife/psi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/betterlife/psi/git/refs{/sha}","trees_url":"https://api.github.com/repos/betterlife/psi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/betterlife/psi/statuses/{sha}","languages_url":"https://api.github.com/repos/betterlife/psi/languages","stargazers_url":"https://api.github.com/repos/betterlife/psi/stargazers","contributors_url":"https://api.github.com/repos/betterlife/psi/contributors","subscribers_url":"https://api.github.com/repos/betterlife/psi/subscribers","subscription_url":"https://api.github.com/repos/betterlife/psi/subscription","commits_url":"https://api.github.com/repos/betterlife/psi/commits{/sha}","git_commits_url":"https://api.github.com/repos/betterlife/psi/git/commits{/sha}","comments_url":"https://api.github.com/repos/betterlife/psi/comments{/number}","issue_comment_url":"https://api.github.com/repos/betterlife/psi/issues/comments{/number}","contents_url":"https://api.github.com/repos/betterlife/psi/contents/{+path}","compare_url":"https://api.github.com/repos/betterlife/psi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/betterlife/psi/merges","archive_url":"https://api.github.com/repos/betterlife/psi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/betterlife/psi/downloads","issues_url":"https://api.github.com/repos/betterlife/psi/issues{/number}","pulls_url":"https://api.github.com/repos/betterlife/psi/pulls{/number}","milestones_url":"https://api.github.com/repos/betterlife/psi/milestones{/number}","notifications_url":"https://api.github.com/repos/betterlife/psi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/betterlife/psi/labels{/name}","releases_url":"https://api.github.com/repos/betterlife/psi/releases{/id}","deployments_url":"https://api.github.com/repos/betterlife/psi/deployments","created_at":"2015-06-19T02:00:10Z","updated_at":"2018-05-03T16:46:54Z","pushed_at":"2018-05-03T16:46:50Z","git_url":"git://github.com/betterlife/psi.git","ssh_url":"git@github.com:betterlife/psi.git","clone_url":"https://github.com/betterlife/psi.git","svn_url":"https://github.com/betterlife/psi","homepage":"","size":3258,"stargazers_count":18,"watchers_count":18,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":37,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":9,"open_issues":37,"watchers":18,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/betterlife/psi/pulls/442"},"html":{"href":"https://github.com/betterlife/psi/pull/442"},"issue":{"href":"https://api.github.com/repos/betterlife/psi/issues/442"},"comments":{"href":"https://api.github.com/repos/betterlife/psi/issues/442/comments"},"review_comments":{"href":"https://api.github.com/repos/betterlife/psi/pulls/442/comments"},"review_comment":{"href":"https://api.github.com/repos/betterlife/psi/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/betterlife/psi/pulls/442/commits"},"statuses":{"href":"https://api.github.com/repos/betterlife/psi/statuses/748676a1c42eaa282ab4a020660415ae449eda19"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":1,"deletions":1,"changed_files":1}}
{"actor":{"display_login":"xqliu"}}