{"action":"created","comment":{"url":"https://api.github.com/repos/home-assistant/home-assistant/pulls/comments/211725295","pull_request_review_id":148208165,"id":211725295,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMTcyNTI5NQ==","diff_hunk":"@@ -0,0 +1,165 @@\n+\"\"\"\n+Demo platform for the geo location component.\n+\n+For more details about this platform, please refer to the documentation\n+https://home-assistant.io/components/demo/\n+\"\"\"\n+import logging\n+import random\n+from datetime import timedelta\n+from math import pi, cos, sin, radians\n+\n+from typing import Optional\n+\n+from homeassistant.components import group\n+from homeassistant.components.geo_location import GeoLocationEvent, DOMAIN\n+from homeassistant.helpers.entity import generate_entity_id\n+from homeassistant.helpers.event import track_time_interval\n+from homeassistant import util\n+\n+_LOGGER = logging.getLogger(__name__)\n+\n+AVG_KM_PER_DEGREE = 111.0\n+DEFAULT_UNIT_OF_MEASUREMENT = \"km\"\n+DEFAULT_UPDATE_INTERVAL = timedelta(minutes=1)\n+ENTITY_ID_FORMAT = DOMAIN + '.{}'\n+MAX_RADIUS_IN_KM = 50\n+NUMBER_OF_DEMO_DEVICES = 5\n+\n+EVENT_NAMES = [\"Bushfire\", \"Hazard Reduction\", \"Grass Fire\", \"Burn off\",\n+               \"Structure Fire\", \"Fire Alarm\", \"Thunderstorm\", \"Tornado\",\n+               \"Cyclone\", \"Waterspout\", \"Dust Storm\", \"Blizzard\", \"Ice Storm\",\n+               \"Earthquake\", \"Tsunami\"]\n+\n+\n+def setup_platform(hass, config, add_devices, discovery_info=None):\n+    \"\"\"Set up the Demo geo locations.\"\"\"\n+    manager = DemoManager(hass, add_devices)\n+    return manager is not None\n+\n+\n+class DemoManager:\n+    \"\"\"Device manager for demo geo location events.\"\"\"\n+\n+    def __init__(self, hass, add_devices):\n+        \"\"\"Initialise the demo geo location event manager.\"\"\"\n+        self._hass = hass\n+        self._add_devices = add_devices\n+        self._name = \"Geo Location Demo\"\n+        self._managed_devices = []\n+        self.group = group.Group.create_group(self._hass, self._name,\n+                                              object_id=util.slugify(\n+                                                  self._name))\n+        self._update(count=NUMBER_OF_DEMO_DEVICES)\n+        self._init_regular_updates()\n+\n+    def _generate_entity_id(self, event_name):\n+        \"\"\"Generate device entity id from the manager name and event name.\"\"\"\n+        entity_ids = [device.entity_id for device in self._managed_devices]\n+        entity_id = generate_entity_id(ENTITY_ID_FORMAT,\n+                                       '{} {}'.format(self._name, event_name),\n+                                       entity_ids, hass=self._hass)\n+        return entity_id\n+\n+    def _group_devices(self):\n+        \"\"\"Re-group all entities.\"\"\"\n+        # Sort entries in group by their state attribute (ascending).\n+        devices = sorted(self._managed_devices.copy(),\n+                         key=lambda device: device.state,\n+                         reverse=False)\n+        entity_ids = [device.entity_id for device in devices]\n+        # Update group.\n+        self.group.update_tracked_entity_ids(entity_ids)\n+\n+    def _generate_random_event(self):\n+        \"\"\"Generate a random event in vicinity of this HA instance.\"\"\"\n+        home_latitude = self._hass.config.latitude\n+        home_longitude = self._hass.config.longitude\n+\n+        # Approx. 111km per degree (north-south).\n+        radius_in_degrees = random.random() * MAX_RADIUS_IN_KM / \\\n+            AVG_KM_PER_DEGREE\n+        radius_in_km = radius_in_degrees * AVG_KM_PER_DEGREE\n+        angle = random.random() * 2 * pi\n+        # Compute coordinates based on radius and angle. Adjust longitude value\n+        # based on HA's latitude.\n+        latitude = home_latitude + radius_in_degrees * sin(angle)\n+        longitude = home_longitude + radius_in_degrees * cos(angle) / \\\n+            cos(radians(home_latitude))\n+\n+        event_name = random.choice(EVENT_NAMES)\n+        entity_id = self._generate_entity_id(event_name)\n+        return DemoGeoLocationEvent(self._hass, entity_id, event_name,\n+                                    radius_in_km, latitude, longitude,\n+                                    DEFAULT_UNIT_OF_MEASUREMENT)\n+\n+    def _init_regular_updates(self):\n+        \"\"\"Schedule regular updates based on configured time interval.\"\"\"\n+        track_time_interval(self._hass, lambda now: self._update(),\n+                            DEFAULT_UPDATE_INTERVAL)\n+\n+    def _update(self, count=1):\n+        \"\"\"Remove events and add new random events.\"\"\"\n+        # Remove devices.\n+        for _ in range(1, count + 1):\n+            if self._managed_devices:\n+                device = random.choice(self._managed_devices)\n+                if device:\n+                    _LOGGER.debug(\"Removing %s\", device)\n+                    self._managed_devices.remove(device)\n+                    self._hass.add_job(device.async_remove())\n+        # Generate new devices from events.\n+        new_devices = []\n+        for _ in range(1, count + 1):\n+            new_device = self._generate_random_event()\n+            _LOGGER.debug(\"Adding %s\", new_device)\n+            new_devices.append(new_device)\n+            self._managed_devices.append(new_device)\n+        self._add_devices(new_devices)\n+        self._group_devices()\n+\n+\n+class DemoGeoLocationEvent(GeoLocationEvent):\n+    \"\"\"This represents a demo geo location event.\"\"\"\n+\n+    def __init__(self, hass, entity_id, name, distance, latitude, longitude,\n+                 unit_of_measurement):\n+        \"\"\"Initialize entity with data provided.\"\"\"\n+        super().__init__()","path":"homeassistant/components/geo_location/demo.py","position":128,"original_position":128,"commit_id":"36b451b40751951d781e73f77129b33ebcfe95a8","original_commit_id":"36b451b40751951d781e73f77129b33ebcfe95a8","user":{"login":"exxamalte","id":4704260,"node_id":"MDQ6VXNlcjQ3MDQyNjA=","avatar_url":"https://avatars2.githubusercontent.com/u/4704260?v=4","gravatar_id":"","url":"https://api.github.com/users/exxamalte","html_url":"https://github.com/exxamalte","followers_url":"https://api.github.com/users/exxamalte/followers","following_url":"https://api.github.com/users/exxamalte/following{/other_user}","gists_url":"https://api.github.com/users/exxamalte/gists{/gist_id}","starred_url":"https://api.github.com/users/exxamalte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/exxamalte/subscriptions","organizations_url":"https://api.github.com/users/exxamalte/orgs","repos_url":"https://api.github.com/users/exxamalte/repos","events_url":"https://api.github.com/users/exxamalte/events{/privacy}","received_events_url":"https://api.github.com/users/exxamalte/received_events","type":"User","site_admin":false},"body":"OK","created_at":"2018-08-21T19:11:32Z","updated_at":"2018-08-21T19:11:32Z","html_url":"https://github.com/home-assistant/home-assistant/pull/15953#discussion_r211725295","pull_request_url":"https://api.github.com/repos/home-assistant/home-assistant/pulls/15953","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/home-assistant/home-assistant/pulls/comments/211725295"},"html":{"href":"https://github.com/home-assistant/home-assistant/pull/15953#discussion_r211725295"},"pull_request":{"href":"https://api.github.com/repos/home-assistant/home-assistant/pulls/15953"}},"in_reply_to_id":211635321},"pull_request":{"url":"https://api.github.com/repos/home-assistant/home-assistant/pulls/15953","id":207913629,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA3OTEzNjI5","html_url":"https://github.com/home-assistant/home-assistant/pull/15953","diff_url":"https://github.com/home-assistant/home-assistant/pull/15953.diff","patch_url":"https://github.com/home-assistant/home-assistant/pull/15953.patch","issue_url":"https://api.github.com/repos/home-assistant/home-assistant/issues/15953","number":15953,"state":"open","locked":false,"title":"Geo Location component","user":{"login":"exxamalte","id":4704260,"node_id":"MDQ6VXNlcjQ3MDQyNjA=","avatar_url":"https://avatars2.githubusercontent.com/u/4704260?v=4","gravatar_id":"","url":"https://api.github.com/users/exxamalte","html_url":"https://github.com/exxamalte","followers_url":"https://api.github.com/users/exxamalte/followers","following_url":"https://api.github.com/users/exxamalte/following{/other_user}","gists_url":"https://api.github.com/users/exxamalte/gists{/gist_id}","starred_url":"https://api.github.com/users/exxamalte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/exxamalte/subscriptions","organizations_url":"https://api.github.com/users/exxamalte/orgs","repos_url":"https://api.github.com/users/exxamalte/repos","events_url":"https://api.github.com/users/exxamalte/events{/privacy}","received_events_url":"https://api.github.com/users/exxamalte/received_events","type":"User","site_admin":false},"body":"## Description:\r\nThis introduces a new component for any geo-location related things. These are typically short-lived events in the real world like for example bushfires, earthquakes or severe weather events.\r\nSince each external event has longitude/latitude associated, it will automatically be displayed on the map.\r\nThe entity class contained in the component can be extended by platforms if additional information is supplied by external sources. The entity's state is the distance of the event to the HA instance.\r\nThe `demo` platform generates 5 random events in the vicinity of the HA instance. Every minute one event will be replaced by a random new one. All 5 events are grouped together and are sorted by distance in the group.\r\n\r\nFuture enhancements (not included in this PR):\r\n* GeoRSS platform with several enhancements over the existing `geo_rss_events` sensor.\r\n* The use of zones could be used to automatically trigger automations, but this would require support for wildcards in the entity id configuration of the zone trigger, for example `entity_id: 'geo_location.nsw_fire_service_*'`\r\n* It may be nice to display an icon instead of the abbreviated title of each external event on the map.\r\n* If the external event is defined by a polygon (not just a single point) it may be nice to show that polygon on the map. Example: bushfire affecting a large area of land.\r\n* Deprecate and remove the GeoRSS sensor when all its use-cases are covered by this new platform.\r\n\r\n**Related issue (if applicable):** https://github.com/home-assistant/architecture/issues/42\r\n\r\n**Pull request in [home-assistant.github.io](https://github.com/home-assistant/home-assistant.github.io) with documentation (if applicable):** home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>\r\n\r\n## Example entry for `configuration.yaml` (if applicable):\r\n```yaml\r\ngeo_location:\r\n  - platform: demo\r\n```\r\n\r\n## Checklist:\r\n  - [x] The code change is tested and works locally.\r\n  - [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**\r\n\r\nIf user exposed functionality or configuration variables are added/changed:\r\n  - [ ] Documentation added/updated in [home-assistant.github.io](https://github.com/home-assistant/home-assistant.github.io)\r\n\r\nIf the code communicates with devices, web services, or third-party tools:\r\n  - [x] New dependencies have been added to the `REQUIREMENTS` variable ([example][ex-requir]).\r\n  - [x] New dependencies are only imported inside functions that use them ([example][ex-import]).\r\n  - [x] New or updated dependencies have been added to `requirements_all.txt` by running `script/gen_requirements_all.py`.\r\n  - [x] Tests have been added to verify that the new code works.\r\n\r\n[ex-requir]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard.py#L14\r\n[ex-import]: https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/keyboard.py#L54\r\n","created_at":"2018-08-13T09:09:40Z","updated_at":"2018-08-21T19:11:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5c1343781327c56f252cf65522de5840a589f9bc","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":527871105,"node_id":"MDU6TGFiZWw1Mjc4NzExMDU=","url":"https://api.github.com/repos/home-assistant/home-assistant/labels/cla-signed","name":"cla-signed","color":"008000","default":false},{"id":818586697,"node_id":"MDU6TGFiZWw4MTg1ODY2OTc=","url":"https://api.github.com/repos/home-assistant/home-assistant/labels/component:%20feedreader","name":"component: feedreader","color":"ededed","default":false},{"id":1022717701,"node_id":"MDU6TGFiZWwxMDIyNzE3NzAx","url":"https://api.github.com/repos/home-assistant/home-assistant/labels/component:%20geo_location","name":"component: geo_location","color":"ededed","default":false},{"id":805697812,"node_id":"MDU6TGFiZWw4MDU2OTc4MTI=","url":"https://api.github.com/repos/home-assistant/home-assistant/labels/docs-missing","name":"docs-missing","color":"83f26f","default":false},{"id":955422305,"node_id":"MDU6TGFiZWw5NTU0MjIzMDU=","url":"https://api.github.com/repos/home-assistant/home-assistant/labels/in%20progress","name":"in progress","color":"ededed","default":false},{"id":526146744,"node_id":"MDU6TGFiZWw1MjYxNDY3NDQ=","url":"https://api.github.com/repos/home-assistant/home-assistant/labels/new-platform","name":"new-platform","color":"ededed","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/home-assistant/home-assistant/pulls/15953/commits","review_comments_url":"https://api.github.com/repos/home-assistant/home-assistant/pulls/15953/comments","review_comment_url":"https://api.github.com/repos/home-assistant/home-assistant/pulls/comments{/number}","comments_url":"https://api.github.com/repos/home-assistant/home-assistant/issues/15953/comments","statuses_url":"https://api.github.com/repos/home-assistant/home-assistant/statuses/36b451b40751951d781e73f77129b33ebcfe95a8","head":{"label":"exxamalte:geo_location_component","ref":"geo_location_component","sha":"36b451b40751951d781e73f77129b33ebcfe95a8","user":{"login":"exxamalte","id":4704260,"node_id":"MDQ6VXNlcjQ3MDQyNjA=","avatar_url":"https://avatars2.githubusercontent.com/u/4704260?v=4","gravatar_id":"","url":"https://api.github.com/users/exxamalte","html_url":"https://github.com/exxamalte","followers_url":"https://api.github.com/users/exxamalte/followers","following_url":"https://api.github.com/users/exxamalte/following{/other_user}","gists_url":"https://api.github.com/users/exxamalte/gists{/gist_id}","starred_url":"https://api.github.com/users/exxamalte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/exxamalte/subscriptions","organizations_url":"https://api.github.com/users/exxamalte/orgs","repos_url":"https://api.github.com/users/exxamalte/repos","events_url":"https://api.github.com/users/exxamalte/events{/privacy}","received_events_url":"https://api.github.com/users/exxamalte/received_events","type":"User","site_admin":false},"repo":{"id":95968012,"node_id":"MDEwOlJlcG9zaXRvcnk5NTk2ODAxMg==","name":"home-assistant","full_name":"exxamalte/home-assistant","owner":{"login":"exxamalte","id":4704260,"node_id":"MDQ6VXNlcjQ3MDQyNjA=","avatar_url":"https://avatars2.githubusercontent.com/u/4704260?v=4","gravatar_id":"","url":"https://api.github.com/users/exxamalte","html_url":"https://github.com/exxamalte","followers_url":"https://api.github.com/users/exxamalte/followers","following_url":"https://api.github.com/users/exxamalte/following{/other_user}","gists_url":"https://api.github.com/users/exxamalte/gists{/gist_id}","starred_url":"https://api.github.com/users/exxamalte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/exxamalte/subscriptions","organizations_url":"https://api.github.com/users/exxamalte/orgs","repos_url":"https://api.github.com/users/exxamalte/repos","events_url":"https://api.github.com/users/exxamalte/events{/privacy}","received_events_url":"https://api.github.com/users/exxamalte/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/exxamalte/home-assistant","description":":house_with_garden: Open-source home automation platform running on Python 3","fork":true,"url":"https://api.github.com/repos/exxamalte/home-assistant","forks_url":"https://api.github.com/repos/exxamalte/home-assistant/forks","keys_url":"https://api.github.com/repos/exxamalte/home-assistant/keys{/key_id}","collaborators_url":"https://api.github.com/repos/exxamalte/home-assistant/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/exxamalte/home-assistant/teams","hooks_url":"https://api.github.com/repos/exxamalte/home-assistant/hooks","issue_events_url":"https://api.github.com/repos/exxamalte/home-assistant/issues/events{/number}","events_url":"https://api.github.com/repos/exxamalte/home-assistant/events","assignees_url":"https://api.github.com/repos/exxamalte/home-assistant/assignees{/user}","branches_url":"https://api.github.com/repos/exxamalte/home-assistant/branches{/branch}","tags_url":"https://api.github.com/repos/exxamalte/home-assistant/tags","blobs_url":"https://api.github.com/repos/exxamalte/home-assistant/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/exxamalte/home-assistant/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/exxamalte/home-assistant/git/refs{/sha}","trees_url":"https://api.github.com/repos/exxamalte/home-assistant/git/trees{/sha}","statuses_url":"https://api.github.com/repos/exxamalte/home-assistant/statuses/{sha}","languages_url":"https://api.github.com/repos/exxamalte/home-assistant/languages","stargazers_url":"https://api.github.com/repos/exxamalte/home-assistant/stargazers","contributors_url":"https://api.github.com/repos/exxamalte/home-assistant/contributors","subscribers_url":"https://api.github.com/repos/exxamalte/home-assistant/subscribers","subscription_url":"https://api.github.com/repos/exxamalte/home-assistant/subscription","commits_url":"https://api.github.com/repos/exxamalte/home-assistant/commits{/sha}","git_commits_url":"https://api.github.com/repos/exxamalte/home-assistant/git/commits{/sha}","comments_url":"https://api.github.com/repos/exxamalte/home-assistant/comments{/number}","issue_comment_url":"https://api.github.com/repos/exxamalte/home-assistant/issues/comments{/number}","contents_url":"https://api.github.com/repos/exxamalte/home-assistant/contents/{+path}","compare_url":"https://api.github.com/repos/exxamalte/home-assistant/compare/{base}...{head}","merges_url":"https://api.github.com/repos/exxamalte/home-assistant/merges","archive_url":"https://api.github.com/repos/exxamalte/home-assistant/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/exxamalte/home-assistant/downloads","issues_url":"https://api.github.com/repos/exxamalte/home-assistant/issues{/number}","pulls_url":"https://api.github.com/repos/exxamalte/home-assistant/pulls{/number}","milestones_url":"https://api.github.com/repos/exxamalte/home-assistant/milestones{/number}","notifications_url":"https://api.github.com/repos/exxamalte/home-assistant/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/exxamalte/home-assistant/labels{/name}","releases_url":"https://api.github.com/repos/exxamalte/home-assistant/releases{/id}","deployments_url":"https://api.github.com/repos/exxamalte/home-assistant/deployments","created_at":"2017-07-01T14:10:11Z","updated_at":"2018-08-06T23:25:12Z","pushed_at":"2018-08-21T11:55:26Z","git_url":"git://github.com/exxamalte/home-assistant.git","ssh_url":"git@github.com:exxamalte/home-assistant.git","clone_url":"https://github.com/exxamalte/home-assistant.git","svn_url":"https://github.com/exxamalte/home-assistant","homepage":"https://home-assistant.io","size":86165,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"dev"}},"base":{"label":"home-assistant:dev","ref":"dev","sha":"23427098039a44d11c45e082c17f52e37594db33","user":{"login":"home-assistant","id":13844975,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzODQ0OTc1","avatar_url":"https://avatars3.githubusercontent.com/u/13844975?v=4","gravatar_id":"","url":"https://api.github.com/users/home-assistant","html_url":"https://github.com/home-assistant","followers_url":"https://api.github.com/users/home-assistant/followers","following_url":"https://api.github.com/users/home-assistant/following{/other_user}","gists_url":"https://api.github.com/users/home-assistant/gists{/gist_id}","starred_url":"https://api.github.com/users/home-assistant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/home-assistant/subscriptions","organizations_url":"https://api.github.com/users/home-assistant/orgs","repos_url":"https://api.github.com/users/home-assistant/repos","events_url":"https://api.github.com/users/home-assistant/events{/privacy}","received_events_url":"https://api.github.com/users/home-assistant/received_events","type":"Organization","site_admin":false},"repo":{"id":12888993,"node_id":"MDEwOlJlcG9zaXRvcnkxMjg4ODk5Mw==","name":"home-assistant","full_name":"home-assistant/home-assistant","owner":{"login":"home-assistant","id":13844975,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzODQ0OTc1","avatar_url":"https://avatars3.githubusercontent.com/u/13844975?v=4","gravatar_id":"","url":"https://api.github.com/users/home-assistant","html_url":"https://github.com/home-assistant","followers_url":"https://api.github.com/users/home-assistant/followers","following_url":"https://api.github.com/users/home-assistant/following{/other_user}","gists_url":"https://api.github.com/users/home-assistant/gists{/gist_id}","starred_url":"https://api.github.com/users/home-assistant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/home-assistant/subscriptions","organizations_url":"https://api.github.com/users/home-assistant/orgs","repos_url":"https://api.github.com/users/home-assistant/repos","events_url":"https://api.github.com/users/home-assistant/events{/privacy}","received_events_url":"https://api.github.com/users/home-assistant/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/home-assistant/home-assistant","description":":house_with_garden: Open-source home automation platform running on Python 3","fork":false,"url":"https://api.github.com/repos/home-assistant/home-assistant","forks_url":"https://api.github.com/repos/home-assistant/home-assistant/forks","keys_url":"https://api.github.com/repos/home-assistant/home-assistant/keys{/key_id}","collaborators_url":"https://api.github.com/repos/home-assistant/home-assistant/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/home-assistant/home-assistant/teams","hooks_url":"https://api.github.com/repos/home-assistant/home-assistant/hooks","issue_events_url":"https://api.github.com/repos/home-assistant/home-assistant/issues/events{/number}","events_url":"https://api.github.com/repos/home-assistant/home-assistant/events","assignees_url":"https://api.github.com/repos/home-assistant/home-assistant/assignees{/user}","branches_url":"https://api.github.com/repos/home-assistant/home-assistant/branches{/branch}","tags_url":"https://api.github.com/repos/home-assistant/home-assistant/tags","blobs_url":"https://api.github.com/repos/home-assistant/home-assistant/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/home-assistant/home-assistant/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/home-assistant/home-assistant/git/refs{/sha}","trees_url":"https://api.github.com/repos/home-assistant/home-assistant/git/trees{/sha}","statuses_url":"https://api.github.com/repos/home-assistant/home-assistant/statuses/{sha}","languages_url":"https://api.github.com/repos/home-assistant/home-assistant/languages","stargazers_url":"https://api.github.com/repos/home-assistant/home-assistant/stargazers","contributors_url":"https://api.github.com/repos/home-assistant/home-assistant/contributors","subscribers_url":"https://api.github.com/repos/home-assistant/home-assistant/subscribers","subscription_url":"https://api.github.com/repos/home-assistant/home-assistant/subscription","commits_url":"https://api.github.com/repos/home-assistant/home-assistant/commits{/sha}","git_commits_url":"https://api.github.com/repos/home-assistant/home-assistant/git/commits{/sha}","comments_url":"https://api.github.com/repos/home-assistant/home-assistant/comments{/number}","issue_comment_url":"https://api.github.com/repos/home-assistant/home-assistant/issues/comments{/number}","contents_url":"https://api.github.com/repos/home-assistant/home-assistant/contents/{+path}","compare_url":"https://api.github.com/repos/home-assistant/home-assistant/compare/{base}...{head}","merges_url":"https://api.github.com/repos/home-assistant/home-assistant/merges","archive_url":"https://api.github.com/repos/home-assistant/home-assistant/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/home-assistant/home-assistant/downloads","issues_url":"https://api.github.com/repos/home-assistant/home-assistant/issues{/number}","pulls_url":"https://api.github.com/repos/home-assistant/home-assistant/pulls{/number}","milestones_url":"https://api.github.com/repos/home-assistant/home-assistant/milestones{/number}","notifications_url":"https://api.github.com/repos/home-assistant/home-assistant/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/home-assistant/home-assistant/labels{/name}","releases_url":"https://api.github.com/repos/home-assistant/home-assistant/releases{/id}","deployments_url":"https://api.github.com/repos/home-assistant/home-assistant/deployments","created_at":"2013-09-17T07:29:48Z","updated_at":"2018-08-21T18:31:00Z","pushed_at":"2018-08-21T18:03:39Z","git_url":"git://github.com/home-assistant/home-assistant.git","ssh_url":"git@github.com:home-assistant/home-assistant.git","clone_url":"https://github.com/home-assistant/home-assistant.git","svn_url":"https://github.com/home-assistant/home-assistant","homepage":"https://home-assistant.io","size":86542,"stargazers_count":15773,"watchers_count":15773,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":4725,"mirror_url":null,"archived":false,"open_issues_count":817,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":4725,"open_issues":817,"watchers":15773,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/home-assistant/home-assistant/pulls/15953"},"html":{"href":"https://github.com/home-assistant/home-assistant/pull/15953"},"issue":{"href":"https://api.github.com/repos/home-assistant/home-assistant/issues/15953"},"comments":{"href":"https://api.github.com/repos/home-assistant/home-assistant/issues/15953/comments"},"review_comments":{"href":"https://api.github.com/repos/home-assistant/home-assistant/pulls/15953/comments"},"review_comment":{"href":"https://api.github.com/repos/home-assistant/home-assistant/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/home-assistant/home-assistant/pulls/15953/commits"},"statuses":{"href":"https://api.github.com/repos/home-assistant/home-assistant/statuses/36b451b40751951d781e73f77129b33ebcfe95a8"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"exxamalte"}}