{"action":"opened","number":128,"pull_request":{"url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls/128","id":233592825,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMzNTkyODI1","html_url":"https://github.com/Gimpneek/exclusive-raid-gym-tracker/pull/128","diff_url":"https://github.com/Gimpneek/exclusive-raid-gym-tracker/pull/128.diff","patch_url":"https://github.com/Gimpneek/exclusive-raid-gym-tracker/pull/128.patch","issue_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues/128","number":128,"state":"open","locked":false,"title":"Dependency Update:  Scheduled weekly dependency update for week 47","user":{"login":"pyup-bot","id":16239342,"node_id":"MDQ6VXNlcjE2MjM5MzQy","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":"\n\n\n\n\n### Update [Django](https://pypi.org/project/Django) from **2.0.7** to **2.1.3**.\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 2.1.3\n   ```\n   ==========================\n\n*November 1, 2018*\n\nDjango 2.1.3 fixes several bugs in 2.1.2.\n\nBugfixes\n========\n\n* Fixed a regression in Django 2.0 where combining ``Q`` objects with ``__in``\n  lookups and lists crashed (:ticket:`29838`).\n\n* Fixed a regression in Django 1.11 where ``django-admin shell`` may hang\n  on startup (:ticket:`29774`).\n\n* Fixed a regression in Django 2.0 where test databases aren&#39;t reused with\n  ``manage.py test --keepdb`` on MySQL (:ticket:`29827`).\n\n* Fixed a regression where cached foreign keys that use ``to_field`` were\n  incorrectly cleared in ``Model.save()`` (:ticket:`29896`).\n\n* Fixed a regression in Django 2.0 where ``FileSystemStorage`` crashes with\n  ``FileExistsError`` if concurrent saves try to create the same directory\n  (:ticket:`29890`).\n\n\n==========================\n   ```\n   \n  \n  \n   ### 2.1.2\n   ```\n   ==========================\n\n*October 1, 2018*\n\nDjango 2.1.2 fixes a security issue and several bugs in 2.1.1. Also, the latest\nstring translations from Transifex are incorporated.\n\nCVE-2018-16984: Password hash disclosure to &quot;view only&quot; admin users\n===================================================================\n\nIf an admin user has the change permission to the user model, only part of the\npassword hash is displayed in the change form. Admin users with the view (but\nnot change) permission to the user model were displayed the entire hash. While\nit&#39;s typically infeasible to reverse a strong password hash, if your site uses\nweaker password hashing algorithms such as MD5 or SHA1, it could be a problem.\n\nBugfixes\n========\n\n* Fixed a regression where nonexistent joins in ``F()`` no longer raised\n  ``FieldError`` (:ticket:`29727`).\n\n* Fixed a regression where files starting with a tilde or underscore weren&#39;t\n  ignored by the migrations loader (:ticket:`29749`).\n\n* Made migrations detect changes to ``Meta.default_related_name``\n  (:ticket:`29755`).\n\n* Added compatibility for ``cx_Oracle`` 7 (:ticket:`29759`).\n\n* Fixed a regression in Django 2.0 where unique index names weren&#39;t quoted\n  (:ticket:`29778`).\n\n* Fixed a regression where sliced queries with multiple columns with the same\n  name crashed on Oracle 12.1 (:ticket:`29630`).\n\n* Fixed a crash when a user with the view (but not change) permission made a\n  POST request to an admin user change form (:ticket:`29809`).\n\n\n==========================\n   ```\n   \n  \n  \n   ### 2.1.1\n   ```\n   ==========================\n\n*August 31, 2018*\n\nDjango 2.1.1 fixes several bugs in 2.1.\n\nBugfixes\n========\n\n* Fixed a race condition in ``QuerySet.update_or_create()`` that could result\n  in data loss (:ticket:`29499`).\n\n* Fixed a regression where ``QueryDict.urlencode()`` crashed if the dictionary\n  contains a non-string value (:ticket:`29627`).\n\n* Fixed a regression in Django 2.0 where using ``manage.py test --keepdb``\n  fails on PostgreSQL if the database exists and the user doesn&#39;t have\n  permission to create databases (:ticket:`29613`).\n\n* Fixed a regression in Django 2.0 where combining ``Q`` objects with ``__in``\n  lookups and lists crashed (:ticket:`29643`).\n\n* Fixed translation failure of ``DurationField``&#39;s &quot;overflow&quot; error message\n  (:ticket:`29623`).\n\n* Fixed a regression where the admin change form crashed if the user doesn&#39;t\n  have the &#39;add&#39; permission to a model that uses ``TabularInline``\n  (:ticket:`29637`).\n\n* Fixed a regression where a ``related_query_name`` reverse accessor wasn&#39;t set\n  up when a ``GenericRelation`` is declared on an abstract base model\n  (:ticket:`29653`).\n\n* Fixed the test client&#39;s JSON serialization of a request data dictionary for\n  structured content type suffixes (:ticket:`29662`).\n\n* Made the admin change view redirect to the changelist view after a POST if\n  the user has the &#39;view&#39; permission (:ticket:`29663`).\n\n* Fixed admin change view crash for view-only users if the form has an extra\n  form field (:ticket:`29682`).\n\n* Fixed a regression in Django 2.0.5 where ``QuerySet.values()`` or\n  ``values_list()`` after combining querysets with ``extra()`` with\n  ``union()``, ``difference()``, or ``intersection()`` crashed due to\n  mismatching columns (:ticket:`29694`).\n\n* Fixed crash if ``InlineModelAdmin.has_add_permission()`` doesn&#39;t accept the\n  ``obj`` argument (:ticket:`29723`).\n\n\n========================\n   ```\n   \n  \n  \n   ### 2.1\n   ```\n   ========================\n\n*August 1, 2018*\n\nWelcome to Django 2.1!\n\nThese release notes cover the :ref:`new features &lt;whats-new-2.1&gt;`, as well as\nsome :ref:`backwards incompatible changes &lt;backwards-incompatible-2.1&gt;` you&#39;ll\nwant to be aware of when upgrading from Django 2.0 or earlier. We&#39;ve\n:ref:`dropped some features&lt;removed-features-2.1&gt;` that have reached the end of\ntheir deprecation cycle, and we&#39;ve :ref:`begun the deprecation process for some\nfeatures &lt;deprecated-features-2.1&gt;`.\n\nSee the :doc:`/howto/upgrade-version` guide if you&#39;re updating an existing\nproject.\n\nPython compatibility\n====================\n\nDjango 2.1 supports Python 3.5, 3.6, and 3.7. Django 2.0 is the last version to\nsupport Python 3.4.  We **highly recommend** and only officially support the\nlatest release of each series.\n\n.. _whats-new-2.1:\n\nWhat&#39;s new in Django 2.1\n========================\n\nModel &quot;view&quot; permission\n-----------------------\n\nA &quot;view&quot; permission is added to the model :attr:`Meta.default_permissions\n&lt;django.db.models.Options.default_permissions&gt;`. The new permissions will be\ncreated automatically when running :djadmin:`migrate`.\n\nThis allows giving users read-only access to models in the admin.\n:meth:`.ModelAdmin.has_view_permission` is new. The implementation is backwards\ncompatible in that there isn&#39;t a need to assign the &quot;view&quot; permission to allow\nusers who have the &quot;change&quot; permission to edit objects.\n\nThere are a couple of :ref:`backwards incompatible considerations\n&lt;view_permission_backwards_incompatible&gt;`.\n\nMinor features\n--------------\n\n:mod:`django.contrib.admin`\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* :attr:`.ModelAdmin.search_fields` now accepts any lookup such as\n  ``field__exact``.\n\n* jQuery is upgraded from version 2.2.3 to 3.3.1.\n\n* The new :meth:`.ModelAdmin.delete_queryset` method allows customizing the\n  deletion process of the &quot;delete selected objects&quot; action.\n\n* You can now :ref:`override the default admin site\n  &lt;overriding-default-admin-site&gt;`.\n\n* The new :attr:`.ModelAdmin.sortable_by` attribute and\n  :meth:`.ModelAdmin.get_sortable_by` method allow limiting the columns that\n  can be sorted in the change list page.\n\n* The ``admin_order_field`` attribute for elements in\n  :attr:`.ModelAdmin.list_display` may now be a query expression.\n\n* The new :meth:`.ModelAdmin.get_deleted_objects()` method allows customizing\n  the deletion process of the delete view and the &quot;delete selected&quot; action.\n\n* The ``actions.html``, ``change_list_results.html``, ``date_hierarchy.html``,\n  ``pagination.html``, ``prepopulated_fields_js.html``, ``search_form.html``,\n  and ``submit_line.html`` templates can now be :ref:`overridden per app or\n  per model &lt;admin-templates-overridden-per-app-or-model&gt;` (besides overridden\n  globally).\n\n* The admin change list and change form object tools can now be :ref:`overridden\n  per app, per model, or globally &lt;admin-templates-overridden-per-app-or-model&gt;`\n  with ``change_list_object_tools.html`` and\n  ``change_form_object_tools.html`` templates.\n\n* :meth:`.InlineModelAdmin.has_add_permission` is now passed the parent object\n  as the second positional argument, ``obj``.\n\n* Admin actions may now :ref:`specify permissions &lt;admin-action-permissions&gt;`\n  to limit their availability to certain users.\n\n:mod:`django.contrib.auth`\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* :djadmin:`createsuperuser` now gives a prompt to allow bypassing the\n  :setting:`AUTH_PASSWORD_VALIDATORS` checks.\n\n:mod:`django.contrib.gis`\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* The new :meth:`.GEOSGeometry.buffer_with_style` method is a version of\n  :meth:`~.GEOSGeometry.buffer` that allows customizing the style of the\n  buffer.\n\n* :class:`~django.contrib.gis.forms.widgets.OpenLayersWidget` is now based on\n  OpenLayers 4.6.5 (previously 3.20.1).\n\n:mod:`django.contrib.sessions`\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Added the :setting:`SESSION_COOKIE_SAMESITE` setting to set the ``SameSite``\n  cookie flag on session cookies.\n\nCache\n~~~~~\n\n* The :ref:`local-memory cache backend &lt;local-memory-caching&gt;` now uses a\n  least-recently-used (LRU) culling strategy rather than a pseudo-random one.\n\n* The new ``touch()`` method of the :ref:`low-level cache API\n  &lt;low-level-cache-api&gt;` updates the timeout of cache keys.\n\nCSRF\n~~~~\n\n* Added the :setting:`CSRF_COOKIE_SAMESITE` setting to set the ``SameSite``\n  cookie flag on CSRF cookies.\n\nForms\n~~~~~\n\n* The widget for ``ImageField`` now renders with the HTML attribute\n  ``accept=&quot;image/*&quot;``.\n\nInternationalization\n~~~~~~~~~~~~~~~~~~~~\n\n* Added the :meth:`~django.utils.translation.get_supported_language_variant`\n  function.\n\n* Untranslated strings for territorial language variants now use the\n  translations of the generic language. For example, untranslated ``pt_BR``\n  strings use ``pt`` translations.\n\nManagement Commands\n~~~~~~~~~~~~~~~~~~~\n\n* The new :option:`inspectdb --include-views` option allows creating models\n  for database views.\n\n* The :class:`~django.core.management.BaseCommand` class now uses a custom help\n  formatter so that the standard options like ``--verbosity`` or ``--settings``\n  appear last in the help output, giving a more prominent position to subclassed\n  command&#39;s options.\n\nMigrations\n~~~~~~~~~~\n\n* Added support for serialization of ``functools.partialmethod`` objects.\n\n* To support frozen environments, migrations may be loaded from ``.pyc`` files.\n\nModels\n~~~~~~\n\n* Models can now use ``__init_subclass__()`` from :pep:`487`.\n\n* A ``BinaryField`` may now be set to ``editable=True`` if you wish to include\n  it in model forms.\n\n* A number of new text database functions are added:\n  :class:`~django.db.models.functions.Chr`,\n  :class:`~django.db.models.functions.Left`,\n  :class:`~django.db.models.functions.LPad`,\n  :class:`~django.db.models.functions.LTrim`,\n  :class:`~django.db.models.functions.Ord`,\n  :class:`~django.db.models.functions.Repeat`,\n  :class:`~django.db.models.functions.Replace`,\n  :class:`~django.db.models.functions.Right`,\n  :class:`~django.db.models.functions.RPad`,\n  :class:`~django.db.models.functions.RTrim`, and\n  :class:`~django.db.models.functions.Trim`.\n\n* The new :class:`~django.db.models.functions.TruncWeek` function truncates\n  :class:`~django.db.models.DateField` and\n  :class:`~django.db.models.DateTimeField` to the Monday of a week.\n\n* Query expressions can now be negated using a minus sign.\n\n* :meth:`.QuerySet.order_by` and :meth:`distinct(*fields) &lt;.QuerySet.distinct&gt;`\n  now support using field transforms.\n\n* :class:`~django.db.models.BooleanField` can now be ``null=True``. This is\n  encouraged instead of :class:`~django.db.models.NullBooleanField`, which will\n  likely be deprecated in the future.\n\n* The new :meth:`.QuerySet.explain` method displays the database&#39;s execution\n  plan of a queryset&#39;s query.\n\n*  :meth:`.QuerySet.raw` now supports :meth:`~.QuerySet.prefetch_related`.\n\nRequests and Responses\n~~~~~~~~~~~~~~~~~~~~~~\n\n* Added :meth:`.HttpRequest.get_full_path_info`.\n\n* Added the ``samesite`` argument to :meth:`.HttpResponse.set_cookie` to allow\n  setting the ``SameSite`` cookie flag.\n\n* The new ``as_attachment`` argument for :class:`~django.http.FileResponse`\n  sets the ``Content-Disposition`` header to make the browser ask if the user\n  wants to download the file. ``FileResponse`` also tries to set the\n  ``Content-Type`` and ``Content-Length`` headers where appropriate.\n\nTemplates\n~~~~~~~~~\n\n* The new :tfilter:`json_script` filter safely outputs a Python object as JSON,\n  wrapped in a ``&lt;script&gt;`` tag, ready for use with JavaScript.\n\nTests\n~~~~~\n\n* Added test :class:`~django.test.Client` support for 307 and 308 redirects.\n\n* The test :class:`~django.test.Client` now serializes a request data\n  dictionary as JSON if ``content_type=&#39;application/json&#39;``. You can customize\n  the JSON encoder with test client&#39;s ``json_encoder`` parameter.\n\n* The new :meth:`.SimpleTestCase.assertWarnsMessage` method is a simpler\n  version of :meth:`~unittest.TestCase.assertWarnsRegex`.\n\n.. _backwards-incompatible-2.1:\n\nBackwards incompatible changes in 2.1\n=====================================\n\nDatabase backend API\n--------------------\n\n* To adhere to :pep:`249`, exceptions where a database doesn&#39;t support a\n  feature are changed from :exc:`NotImplementedError` to\n  :exc:`django.db.NotSupportedError`.\n\n* Renamed the ``allow_sliced_subqueries`` database feature flag to\n  ``allow_sliced_subqueries_with_in``.\n\n* ``DatabaseOperations.distinct_sql()`` now requires an additional ``params``\n  argument and returns a tuple of SQL and parameters instead of a SQL string.\n\n* ``DatabaseFeatures.introspected_boolean_field_type`` is changed from a method\n  to a property.\n\n:mod:`django.contrib.gis`\n-------------------------\n\n* Support for SpatiaLite 4.0 is removed.\n\nDropped support for MySQL 5.5\n-----------------------------\n\nThe end of upstream support for MySQL 5.5 is December 2018. Django 2.1 supports\nMySQL 5.6 and higher.\n\nDropped support for PostgreSQL 9.3\n----------------------------------\n\nThe end of upstream support for PostgreSQL 9.3 is September 2018. Django 2.1\nsupports PostgreSQL 9.4 and higher.\n\nRemoved ``BCryptPasswordHasher`` from the default ``PASSWORD_HASHERS`` setting\n------------------------------------------------------------------------------\n\nIf you used bcrypt with Django 1.4 or 1.5 (before ``BCryptSHA256PasswordHasher``\nwas added in Django 1.6), you might have some passwords that use the\n``BCryptPasswordHasher`` hasher.\n\nYou can check if that&#39;s the case like this::\n\n    from django.contrib.auth import get_user_model\n    User = get_user_model()\n    User.objects.filter(password__startswith=&#39;bcrypt$$&#39;)\n\nIf you want to continue to allow those passwords to be used, you&#39;ll\nhave to define the :setting:`PASSWORD_HASHERS` setting (if you don&#39;t already)\nand include ``&#39;django.contrib.auth.hashers.BCryptPasswordHasher&#39;``.\n\nMoved ``wrap_label`` widget template context variable\n-----------------------------------------------------\n\nTo fix the lack of ``&lt;label&gt;`` when using ``RadioSelect`` and\n``CheckboxSelectMultiple`` with ``MultiWidget``, the ``wrap_label`` context\nvariable now appears as an attribute of each option. For example, in a custom\n``input_option.html`` template, change ``{% if wrap_label %}`` to\n``{% if widget.wrap_label %}``.\n\n``SameSite`` cookies\n--------------------\n\nThe cookies used for ``django.contrib.sessions``, ``django.contrib.messages``,\nand Django&#39;s CSRF protection now set the ``SameSite`` flag to ``Lax`` by\ndefault. Browsers that respect this flag won&#39;t send these cookies on\ncross-origin requests. If you rely on the old behavior, set the\n:setting:`SESSION_COOKIE_SAMESITE` and/or :setting:`CSRF_COOKIE_SAMESITE`\nsetting to ``None``.\n\n.. _view_permission_backwards_incompatible:\n\nConsiderations for the new model &quot;view&quot; permission\n--------------------------------------------------\n\nCustom admin forms need to take the view-only case into account\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nWith the new &quot;view&quot; permission, existing custom admin forms may raise errors\nwhen a user doesn&#39;t have the change permission because the form might access\nnonexistent fields. Fix this by overriding :meth:`.ModelAdmin.get_form` and\nchecking if the user has the &quot;change&quot; permissions and returning the default\nform if not::\n\n    class MyAdmin(admin.ModelAdmin):\n        def get_form(self, request, obj=None, **kwargs):\n            if not self.has_change_permission(request, obj):\n                return super().get_form(request, obj, **kwargs)\n            return CustomForm\n\nNew default view permission could allow unwanted access to admin views\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you have a custom permission with a codename of the form\n``view_&lt;modelname&gt;``, the new view permission handling in the admin will allow\nview access to the changelist and detail pages for those models. If this is\nunwanted, you must change your custom permission codename.\n\nMiscellaneous\n-------------\n\n* The minimum supported version of ``mysqlclient`` is increased from 1.3.3 to\n  1.3.7.\n\n* Support for SQLite &lt; 3.7.15 is removed.\n\n* The date format of ``Set-Cookie``&#39;s ``Expires`` directive is changed to\n  follow :rfc:`7231section-7.1.1.1` instead of Netscape&#39;s cookie standard.\n  Hyphens present in dates like ``Tue, 25-Dec-2018 22:26:13 GMT`` are removed.\n  This change should be merely cosmetic except perhaps for antiquated browsers\n  that don&#39;t parse the new format.\n\n* ``allowed_hosts`` is now a required argument of private API\n  ``django.utils.http.is_safe_url()``.\n\n* The ``multiple`` attribute rendered by the\n  :class:`~django.forms.SelectMultiple` widget now uses HTML5 boolean syntax\n  rather than XHTML&#39;s ``multiple=&quot;multiple&quot;``.\n\n* HTML rendered by form widgets no longer includes a closing slash on void\n  elements, e.g. ``&lt;br&gt;``. This is incompatible within XHTML, although some\n  widgets already used aspects of HTML5 such as boolean attributes.\n\n* The value of :class:`~django.forms.SelectDateWidget`&#39;s empty options is\n  changed from 0 to an empty string, which mainly may require some adjustments\n  in tests that compare HTML.\n\n* :meth:`.User.has_usable_password` and the\n  :func:`~django.contrib.auth.hashers.is_password_usable` function no longer\n  return ``False`` if the password is ``None`` or an empty string, or if the\n  password uses a hasher that&#39;s not in the :setting:`PASSWORD_HASHERS` setting.\n  This undocumented behavior was a regression in Django 1.6 and prevented users\n  with such passwords from requesting a password reset. Audit your code to\n  confirm that your usage of these APIs don&#39;t rely on the old behavior.\n\n* Since migrations are now loaded from ``.pyc`` files, you might need to delete\n  them if you&#39;re working in a mixed Python 2 and Python 3 environment.\n\n* Using ``None`` as a :class:`~django.contrib.postgres.fields.JSONField` lookup\n  value now matches objects that have the specified key and a null value rather\n  than objects that don&#39;t have the key.\n\n* The admin CSS class ``field-box`` is renamed to ``fieldBox`` to prevent\n  conflicts with the class given to model fields named &quot;box&quot;.\n\n* Since the admin&#39;s ``actions.html``, ``change_list_results.html``,\n  ``date_hierarchy.html``, ``pagination.html``, ``prepopulated_fields_js.html``,\n  ``search_form.html``, and ``submit_line.html`` templates can now be\n  overridden per app or per model, you may need to rename existing templates\n  with those names that were written for a different purpose.\n\n* ``QuerySet.raw()`` now caches its results like regular querysets. Use\n  ``iterator()`` if you don&#39;t want caching.\n\n* The database router :meth:`allow_relation` method is called in more cases.\n  Improperly written routers may need to be updated accordingly.\n\n* Translations are no longer deactivated before running management commands.\n  If your custom command requires translations to be deactivated (for example,\n  to insert untranslated content into the database), use the new\n  :ref:`no_translations decorator &lt;management-commands-and-locales&gt;`.\n\n* Management commands no longer allow the abbreviated forms of the\n  ``--settings`` and ``--pythonpath`` arguments.\n\n* The private ``django.db.models.sql.constants.QUERY_TERMS`` constant is\n  removed. The :meth:`~.RegisterLookupMixin.get_lookup`\n  and :meth:`~.RegisterLookupMixin.get_lookups` methods\n  of the :ref:`Lookup Registration API &lt;lookup-registration-api&gt;` may be\n  suitable alternatives. Compared to the ``QUERY_TERMS`` constant, they allow\n  your code to also account for any custom lookups that have been registered.\n\n* Compatibility with ``py-bcrypt`` is removed as it&#39;s unmaintained. Use `bcrypt\n  &lt;https://pypi.org/project/bcrypt/&gt;`_ instead.\n\n.. _deprecated-features-2.1:\n\nFeatures deprecated in 2.1\n==========================\n\nMiscellaneous\n-------------\n\n* The ``ForceRHR`` GIS function is deprecated in favor of the new\n  :class:`~django.contrib.gis.db.models.functions.ForcePolygonCW` function.\n\n* ``django.utils.http.cookie_date()`` is deprecated in favor of\n  :func:`~django.utils.http.http_date`, which follows the format of the latest\n  RFC.\n\n* ``{% load staticfiles %}`` and ``{% load admin_static %}`` are deprecated\n  in favor of ``{% load static %}``, which works the same.\n\n* ``django.contrib.staticfiles.templatetags.static()`` is deprecated in favor\n  of ``django.templatetags.static.static()``.\n\n* Support for :meth:`.InlineModelAdmin.has_add_permission` methods that don&#39;t\n  accept ``obj`` as the second positional argument will be removed in Django\n  3.0.\n\n.. _removed-features-2.1:\n\nFeatures removed in 2.1\n=======================\n\nThese features have reached the end of their deprecation cycle and are removed\nin Django 2.1. See :ref:`deprecated-features-1.11` for details, including how\nto remove usage of these features.\n\n* ``contrib.auth.views.login()``, ``logout()``, ``password_change()``,\n  ``password_change_done()``, ``password_reset()``, ``password_reset_done()``,\n  ``password_reset_confirm()``, and ``password_reset_complete()`` are removed.\n\n* The ``extra_context`` parameter of ``contrib.auth.views.logout_then_login()``\n  is removed.\n\n* ``django.test.runner.setup_databases()`` is removed.\n\n* ``django.utils.translation.string_concat()`` is removed.\n\n* ``django.core.cache.backends.memcached.PyLibMCCache`` no longer supports\n  passing ``pylibmc`` behavior settings as top-level attributes of ``OPTIONS``.\n\n* The ``host`` parameter of ``django.utils.http.is_safe_url()`` is removed.\n\n* Silencing of exceptions raised while rendering the ``{% include %}`` template\n  tag is removed.\n\n* ``DatabaseIntrospection.get_indexes()`` is removed.\n\n* The ``authenticate()`` method of authentication backends requires ``request``\n  as the first positional argument.\n\n* The ``django.db.models.permalink()`` decorator is removed.\n\n* The ``USE_ETAGS`` setting is removed. ``CommonMiddleware`` and\n  ``django.utils.cache.patch_response_headers()`` no longer set ETags.\n\n* The ``Model._meta.has_auto_field`` attribute is removed.\n\n* ``url()``&#39;s support for inline flags in regular expression groups (``(?i)``,\n  ``(?L)``, ``(?m)``, ``(?s)``, and ``(?u)``) is removed.\n\n* Support for ``Widget.render()`` methods without the ``renderer`` argument\n  is removed.\n\n\n==========================\n   ```\n   \n  \n  \n   ### 2.0.9\n   ```\n   ==========================\n\n*October 1, 2018*\n\nDjango 2.0.9 fixes a data loss bug in 2.0.8.\n\nBugfixes\n========\n\n* Fixed a race condition in ``QuerySet.update_or_create()`` that could result\n  in data loss (:ticket:`29499`).\n\n\n==========================\n   ```\n   \n  \n  \n   ### 2.0.8\n   ```\n   ==========================\n\n*August 1, 2018*\n\nDjango 2.0.8 fixes a security issue and several bugs in 2.0.7.\n\nCVE-2018-14574: Open redirect possibility in ``CommonMiddleware``\n=================================================================\n\nIf the :class:`~django.middleware.common.CommonMiddleware` and the\n:setting:`APPEND_SLASH` setting are both enabled, and if the project has a\nURL pattern that accepts any path ending in a slash (many content management\nsystems have such a pattern), then a request to a maliciously crafted URL of\nthat site could lead to a redirect to another site, enabling phishing and other\nattacks.\n\n``CommonMiddleware`` now escapes leading slashes to prevent redirects to other\ndomains.\n\nBugfixes\n========\n\n* Fixed a regression in Django 2.0.7 that broke the ``regex`` lookup on MariaDB\n  (even though MariaDB isn&#39;t officially supported) (:ticket:`29544`).\n\n* Fixed a regression where ``django.template.Template`` crashed if the\n  ``template_string`` argument is lazy (:ticket:`29617`).\n\n\n==========================\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/django\n  - Changelog: https://pyup.io/changelogs/django/\n  - Homepage: https://www.djangoproject.com/\n</details>\n\n\n\n\n\n### Update [pytz](https://pypi.org/project/pytz) from **2018.5** to **2018.7**.\n\n\n*The bot wasn't able to find a changelog for this release. [Got an idea?](https://github.com/pyupio/changelogs/issues/new)*\n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/pytz\n  - Homepage: http://pythonhosted.org/pytz\n  - Docs: https://pythonhosted.org/pytz/\n</details>\n\n\n\n\n\n### Update [gunicorn](https://pypi.org/project/gunicorn) from **19.8.1** to **19.9.0**.\n\n\n*The bot wasn't able to find a changelog for this release. [Got an idea?](https://github.com/pyupio/changelogs/issues/new)*\n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/gunicorn\n  - Changelog: https://pyup.io/changelogs/gunicorn/\n  - Homepage: http://gunicorn.org\n</details>\n\n\n\n\n\n### Update [psycopg2](https://pypi.org/project/psycopg2) from **2.7.5** to **2.7.6.1**.\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 2.7.6\n   ```\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n- Close named cursors if exist, even if `~cursor.execute()` wasn&#39;t called\n  (:ticket:`746`).\n- Fixed building on modern FreeBSD versions with Python 3.7 (:ticket:`755`).\n- Fixed hang trying to :sql:`COPY` via `~cursor.execute()` in asynchronous\n  connections (:ticket:`781`).\n- Fixed adaptation of arrays of empty arrays (:ticket:`788`).\n- Fixed segfault accessing the connection&#39;s `~connection.readonly` and\n  `~connection.deferrable` attributes repeatedly (:ticket:`790`).\n- `~psycopg2.extras.execute_values()` accepts `~psycopg2.sql.Composable`\n  objects (:ticket:`794`).\n- `~psycopg2.errorcodes` map updated to PostgreSQL 11.\n- Wheel package compiled against PostgreSQL 10.5 libpq and OpenSSL 1.0.2p.\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/psycopg2\n  - Changelog: https://pyup.io/changelogs/psycopg2/\n  - Homepage: http://initd.org/psycopg/\n</details>\n\n\n\n\n\n### Update [requests](https://pypi.org/project/requests) from **2.19.1** to **2.20.1**.\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 2.20.1\n   ```\n   -------------------\n\n**Bugfixes**\n\n- Fixed bug with unintended Authorization header stripping for\n  redirects using default ports (http/80, https/443).\n   ```\n   \n  \n  \n   ### 2.20.0\n   ```\n   -------------------\n\n**Bugfixes**\n\n-   Content-Type header parsing is now case-insensitive (e.g.\n    charset=utf8 v Charset=utf8).\n-   Fixed exception leak where certain redirect urls would raise\n    uncaught urllib3 exceptions.\n-   Requests removes Authorization header from requests redirected\n    from https to http on the same hostname. (CVE-2018-18074)\n-   `should_bypass_proxies` now handles URIs without hostnames (e.g.\n    files).\n\n**Dependencies**\n\n- Requests now supports urllib3 v1.24.\n\n**Deprecations**\n\n- Requests has officially stopped support for Python 2.6.\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/requests\n  - Changelog: https://pyup.io/changelogs/requests/\n  - Homepage: http://python-requests.org\n</details>\n\n\n\n\n\n### Update [whitenoise](https://pypi.org/project/whitenoise) from **3.3.1** to **4.1.2**.\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 4.1.2\n   ```\n   ------\n\n * Add correct MIME type for WebAssembly, which is required for files to be\n   executed (thanks `mdboom &lt;https://github.com/mdboom&gt;`_ ).\n * Stop accessing the FILE_CHARSET Django setting which was almost entirely\n   unused and is now deprecated (thanks `timgraham\n   &lt;https://github.com/timgraham&gt;`_).\n   ```\n   \n  \n  \n   ### 4.1.1\n   ```\n   ------\n\n * Fix `bug &lt;https://github.com/evansd/whitenoise/issues/202&gt;`_ in ETag\n   handling (thanks `edmorley &lt;https://github.com/edmorley&gt;`_).\n * Documentation fixes (thanks `jamesbeith &lt;https://github.com/jamesbeith&gt;`_\n   and `mathieusteele &lt;https://github.com/mathieusteele&gt;`_).\n   ```\n   \n  \n  \n   ### 4.1\n   ```\n   ----\n\n * Silenced spurious warning about missing directories when in development (i.e\n   &quot;autorefresh&quot;) mode.\n * Support supplying paths as `Pathlib\n   &lt;https://docs.python.org/3.4/library/pathlib.html&gt;`_ instances, rather than\n   just strings (thanks `browniebroke &lt;https://github.com/browniebroke&gt;`_).\n * Add a new :ref:`CompressedStaticFilesStorage &lt;compression-and-caching&gt;`\n   backend to support applying compression without applying Django&#39;s hash-versioning\n   process.\n * Documentation improvements.\n   ```\n   \n  \n  \n   ### 4.0\n   ```\n   ----\n\n.. note:: **Breaking changes**\n          The latest version of WhiteNoise removes some options which were\n          deprecated in the previous major release:\n\n    * The WSGI integration option for Django\n      (which involved editing ``wsgi.py``) has been removed. Instead, you\n      should add WhiteNoise to your\n      middleware list in ``settings.py`` and remove any reference to WhiteNoise from\n      ``wsgi.py``.\n      See the :ref:`documentation &lt;django-middleware&gt;` for more details. |br|\n      (The :doc:`pure WSGI &lt;base&gt;` integration is still available for non-Django apps.)\n\n    * The ``whitenoise.django.GzipManifestStaticFilesStorage`` alias has now\n      been removed. Instead you should use the correct import path:\n      ``whitenoise.storage.CompressedManifestStaticFilesStorage``.\n\n    If you are not using either of these integration options you should have\n    no issues upgrading to the latest version.\n\nRemoved Python 3.3 Support\n++++++++++++++++++++++++++\n\nRemoved support for Python 3.3 since it&#39;s end of life was in September 2017.\n\n\nIndex file support\n++++++++++++++++++\n\nWhiteNoise now supports serving :ref:`index files &lt;index-files-django&gt;` for\ndirectories (e.g. serving ``/example/index.html`` at ``/example/``). It also\ncreates redirects so that visiting the index file directly, or visiting the URL\nwithout a trailing slash will redirect to the correct URL.\n\n\nRange header support (&quot;byte serving&quot;)\n+++++++++++++++++++++++++++++++++++++\n\nWhiteNoise now respects the HTTP Range header which allows a client to request\nonly part of a file. The main use for this is in serving video files to iOS\ndevices as Safari refuses to play videos unless the server supports the\nRange header.\n\n\nETag support\n++++++++++++\n\nWhiteNoise now adds ETag headers to files using the same algorithm used by\nnginx. This gives slightly better caching behaviour than relying purely on Last\nModified dates (although not as good as creating immutable files using\nsomething like ``ManifestStaticFilesStorage``, which is still the best option\nif you can use it).\n\nIf you need to generate your own ETags headers for any reason you can define a\ncustom :any:`add_headers_function &lt;WHITENOISE_ADD_HEADERS_FUNCTION&gt;`.\n\n\nRemove requirement to run collectstatic\n+++++++++++++++++++++++++++++++++++++++\n\nBy setting :any:`WHITENOISE_USE_FINDERS` to ``True`` files will be served\ndirectly from their original locations (usually in ``STATICFILES_DIRS`` or app\n``static`` subdirectories) without needing to be collected into ``STATIC_ROOT``\nby the collectstatic command. This was\nalways the default behaviour when in ``DEBUG`` mode but previously it wasn&#39;t\npossible to enable this behaviour in production. For small apps which aren&#39;t\nusing the caching and compression features of the more advanced storage\nbackends this simplifies the deployment process by removing the need to run\ncollectstatic as part of the build step -- in fact, it&#39;s now possible not to\nhave any build step at all.\n\n\nCustomisable immutable files test\n+++++++++++++++++++++++++++++++++\n\nWhiteNoise ships with code which detects when you are using Django&#39;s\nManifestStaticFilesStorage backend and sends optimal caching headers for files\nwhich are guaranteed not to change. If you are using a different system for\ngenerating cacheable files then you might need to supply your own function for\ndetecting such files. Previously this required subclassing WhiteNoise, but now\nyou can use the :any:`WHITENOISE_IMMUTABLE_FILE_TEST` setting.\n\n\nFix runserver_nostatic to work with Channels\n++++++++++++++++++++++++++++++++++++++++++++\n\nThe old implementation of :ref:`runserver_nostatic &lt;runserver-nostatic&gt;` (which\ndisables Django&#39;s default static file handling in development) did not work\nwith `Channels`_, which needs its own runserver implementation. The\nrunserver_nostatic command has now been rewritten so that it should work with\nChannels and with any other app which provides its own runserver.\n\n.. _Channels: https://channels.readthedocs.io/\n\n\nReduced storage requirements for static files\n+++++++++++++++++++++++++++++++++++++++++++++\n\nThe new :any:`WHITENOISE_KEEP_ONLY_HASHED_FILES` setting reduces the number of\nfiles in STATIC_ROOT by half by storing files only under their hashed names\n(e.g.  ``app.db8f2edc0c8a.js``), rather than also keeping a copy with the\noriginal name (e.g. ``app.js``).\n\n\n\nImproved start up performance\n+++++++++++++++++++++++++++++\n\nWhen in production mode (i.e. when :any:`autorefresh &lt;WHITENOISE_AUTOREFRESH&gt;`\nis disabled), WhiteNoise scans all static files when the application starts in\norder to be able to serve them as efficiently and securely as possible. For\nmost applications this makes no noticeable difference to start up time, however\nfor applications with very large numbers of static files this process can take\nsome time. In WhiteNoise 4.0 the file scanning code has been rewritten to do\nthe minimum possible amount of filesystem access which should make the start up\nprocess considerably faster.\n\n\nWindows Testing\n+++++++++++++++\n\nWhiteNoise has always aimed to support Windows as well as \\*NIX platforms but\nwe are now able to run the test suite against Windows as part of the CI process\nwhich should ensure that we can maintain Windows compatibility in future.\n\n\nModification times for compressed files\n+++++++++++++++++++++++++++++++++++++++\n\nThe compressed storage backend (which generates Gzip and Brotli compressed\nfiles) now ensures that compressed files have the same modification time as the\noriginals.  This only makes a difference if you are using the compression\nbackend with something other than WhiteNoise to actually serve the files, which\nvery few users do.\n\nReplaced brotlipy with official Brotli Python Package\n+++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nSince the official `Brotli project &lt;https://github.com/google/brotli&gt;`_ offers\na `Brotli Python package &lt;https://pypi.org/project/Brotli/&gt;`_ brotlipy has been\nreplaced with Brotli.\n\nFurthermore a ``brotli`` key has been added to ``extras_require`` which allows\ninstalling WhiteNoise and Brotli together like this:\n\n.. code-block:: bash\n\n    pip install whitenoise[brotli]\n\n\n---------------------------\n   ```\n   \n  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/whitenoise\n  - Changelog: https://pyup.io/changelogs/whitenoise/\n  - Homepage: http://whitenoise.evans.io\n</details>\n\n\n\n\n\n### Update [djangorestframework](https://pypi.org/project/djangorestframework) from **3.8.2** to **3.9.0**.\n\n\n*The bot wasn't able to find a changelog for this release. [Got an idea?](https://github.com/pyupio/changelogs/issues/new)*\n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/djangorestframework\n  - Changelog: https://pyup.io/changelogs/djangorestframework/\n  - Homepage: https://www.django-rest-framework.org/\n</details>\n\n\n\n\n\n### Update [drf-nested-routers](https://pypi.org/project/drf-nested-routers) from **0.90.2** to **0.91**.\n\n\n*The bot wasn't able to find a changelog for this release. [Got an idea?](https://github.com/pyupio/changelogs/issues/new)*\n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/drf-nested-routers\n  - Changelog: https://pyup.io/changelogs/drf-nested-routers/\n  - Repo: https://github.com/alanjds/drf-nested-routers\n</details>\n\n\n\n\n\n","created_at":"2018-11-26T15:15:20Z","updated_at":"2018-11-26T15:15:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls/128/commits","review_comments_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls/128/comments","review_comment_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues/128/comments","statuses_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/statuses/9f1cfbbe63a7d681a58fd639c500e600dac401f8","head":{"label":"Gimpneek:pyup-scheduled-update-2018-11-26","ref":"pyup-scheduled-update-2018-11-26","sha":"9f1cfbbe63a7d681a58fd639c500e600dac401f8","user":{"login":"Gimpneek","id":182613,"node_id":"MDQ6VXNlcjE4MjYxMw==","avatar_url":"https://avatars3.githubusercontent.com/u/182613?v=4","gravatar_id":"","url":"https://api.github.com/users/Gimpneek","html_url":"https://github.com/Gimpneek","followers_url":"https://api.github.com/users/Gimpneek/followers","following_url":"https://api.github.com/users/Gimpneek/following{/other_user}","gists_url":"https://api.github.com/users/Gimpneek/gists{/gist_id}","starred_url":"https://api.github.com/users/Gimpneek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gimpneek/subscriptions","organizations_url":"https://api.github.com/users/Gimpneek/orgs","repos_url":"https://api.github.com/users/Gimpneek/repos","events_url":"https://api.github.com/users/Gimpneek/events{/privacy}","received_events_url":"https://api.github.com/users/Gimpneek/received_events","type":"User","site_admin":false},"repo":{"id":101116684,"node_id":"MDEwOlJlcG9zaXRvcnkxMDExMTY2ODQ=","name":"exclusive-raid-gym-tracker","full_name":"Gimpneek/exclusive-raid-gym-tracker","private":false,"owner":{"login":"Gimpneek","id":182613,"node_id":"MDQ6VXNlcjE4MjYxMw==","avatar_url":"https://avatars3.githubusercontent.com/u/182613?v=4","gravatar_id":"","url":"https://api.github.com/users/Gimpneek","html_url":"https://github.com/Gimpneek","followers_url":"https://api.github.com/users/Gimpneek/followers","following_url":"https://api.github.com/users/Gimpneek/following{/other_user}","gists_url":"https://api.github.com/users/Gimpneek/gists{/gist_id}","starred_url":"https://api.github.com/users/Gimpneek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gimpneek/subscriptions","organizations_url":"https://api.github.com/users/Gimpneek/orgs","repos_url":"https://api.github.com/users/Gimpneek/repos","events_url":"https://api.github.com/users/Gimpneek/events{/privacy}","received_events_url":"https://api.github.com/users/Gimpneek/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Gimpneek/exclusive-raid-gym-tracker","description":"A tool for tracking which gyms you've visited in order to maximise you chance at getting an exclusive raid in the city center of Leeds","fork":false,"url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker","forks_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/forks","keys_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/teams","hooks_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/hooks","issue_events_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues/events{/number}","events_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/events","assignees_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/assignees{/user}","branches_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/branches{/branch}","tags_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/tags","blobs_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/refs{/sha}","trees_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/statuses/{sha}","languages_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/languages","stargazers_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/stargazers","contributors_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/contributors","subscribers_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/subscribers","subscription_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/subscription","commits_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/commits{/sha}","git_commits_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/commits{/sha}","comments_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/comments{/number}","issue_comment_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues/comments{/number}","contents_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/contents/{+path}","compare_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/merges","archive_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/downloads","issues_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues{/number}","pulls_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls{/number}","milestones_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/milestones{/number}","notifications_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/labels{/name}","releases_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/releases{/id}","deployments_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/deployments","created_at":"2017-08-22T23:33:10Z","updated_at":"2018-07-10T16:18:50Z","pushed_at":"2018-11-26T15:15:19Z","git_url":"git://github.com/Gimpneek/exclusive-raid-gym-tracker.git","ssh_url":"git@github.com:Gimpneek/exclusive-raid-gym-tracker.git","clone_url":"https://github.com/Gimpneek/exclusive-raid-gym-tracker.git","svn_url":"https://github.com/Gimpneek/exclusive-raid-gym-tracker","homepage":"https://raids.pokemongoleeds.com","size":1261,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":2,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":0,"open_issues":2,"watchers":1,"default_branch":"master"}},"base":{"label":"Gimpneek:master","ref":"master","sha":"8c6b0a63cb0117eb40c2922c87cece830c506e61","user":{"login":"Gimpneek","id":182613,"node_id":"MDQ6VXNlcjE4MjYxMw==","avatar_url":"https://avatars3.githubusercontent.com/u/182613?v=4","gravatar_id":"","url":"https://api.github.com/users/Gimpneek","html_url":"https://github.com/Gimpneek","followers_url":"https://api.github.com/users/Gimpneek/followers","following_url":"https://api.github.com/users/Gimpneek/following{/other_user}","gists_url":"https://api.github.com/users/Gimpneek/gists{/gist_id}","starred_url":"https://api.github.com/users/Gimpneek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gimpneek/subscriptions","organizations_url":"https://api.github.com/users/Gimpneek/orgs","repos_url":"https://api.github.com/users/Gimpneek/repos","events_url":"https://api.github.com/users/Gimpneek/events{/privacy}","received_events_url":"https://api.github.com/users/Gimpneek/received_events","type":"User","site_admin":false},"repo":{"id":101116684,"node_id":"MDEwOlJlcG9zaXRvcnkxMDExMTY2ODQ=","name":"exclusive-raid-gym-tracker","full_name":"Gimpneek/exclusive-raid-gym-tracker","private":false,"owner":{"login":"Gimpneek","id":182613,"node_id":"MDQ6VXNlcjE4MjYxMw==","avatar_url":"https://avatars3.githubusercontent.com/u/182613?v=4","gravatar_id":"","url":"https://api.github.com/users/Gimpneek","html_url":"https://github.com/Gimpneek","followers_url":"https://api.github.com/users/Gimpneek/followers","following_url":"https://api.github.com/users/Gimpneek/following{/other_user}","gists_url":"https://api.github.com/users/Gimpneek/gists{/gist_id}","starred_url":"https://api.github.com/users/Gimpneek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gimpneek/subscriptions","organizations_url":"https://api.github.com/users/Gimpneek/orgs","repos_url":"https://api.github.com/users/Gimpneek/repos","events_url":"https://api.github.com/users/Gimpneek/events{/privacy}","received_events_url":"https://api.github.com/users/Gimpneek/received_events","type":"User","site_admin":false},"html_url":"https://github.com/Gimpneek/exclusive-raid-gym-tracker","description":"A tool for tracking which gyms you've visited in order to maximise you chance at getting an exclusive raid in the city center of Leeds","fork":false,"url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker","forks_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/forks","keys_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/teams","hooks_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/hooks","issue_events_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues/events{/number}","events_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/events","assignees_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/assignees{/user}","branches_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/branches{/branch}","tags_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/tags","blobs_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/refs{/sha}","trees_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/statuses/{sha}","languages_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/languages","stargazers_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/stargazers","contributors_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/contributors","subscribers_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/subscribers","subscription_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/subscription","commits_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/commits{/sha}","git_commits_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/git/commits{/sha}","comments_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/comments{/number}","issue_comment_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues/comments{/number}","contents_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/contents/{+path}","compare_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/merges","archive_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/downloads","issues_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues{/number}","pulls_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls{/number}","milestones_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/milestones{/number}","notifications_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/labels{/name}","releases_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/releases{/id}","deployments_url":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/deployments","created_at":"2017-08-22T23:33:10Z","updated_at":"2018-07-10T16:18:50Z","pushed_at":"2018-11-26T15:15:19Z","git_url":"git://github.com/Gimpneek/exclusive-raid-gym-tracker.git","ssh_url":"git@github.com:Gimpneek/exclusive-raid-gym-tracker.git","clone_url":"https://github.com/Gimpneek/exclusive-raid-gym-tracker.git","svn_url":"https://github.com/Gimpneek/exclusive-raid-gym-tracker","homepage":"https://raids.pokemongoleeds.com","size":1261,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":2,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":0,"open_issues":2,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls/128"},"html":{"href":"https://github.com/Gimpneek/exclusive-raid-gym-tracker/pull/128"},"issue":{"href":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues/128"},"comments":{"href":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/issues/128/comments"},"review_comments":{"href":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls/128/comments"},"review_comment":{"href":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/pulls/128/commits"},"statuses":{"href":"https://api.github.com/repos/Gimpneek/exclusive-raid-gym-tracker/statuses/9f1cfbbe63a7d681a58fd639c500e600dac401f8"}},"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":8,"additions":8,"deletions":8,"changed_files":1}}
{"actor":{"display_login":"pyup-bot"}}