From 56cf4e54a996ab770a380d054c6cede3a4a13ef4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 4 Mar 2020 18:14:45 -0800 Subject: [PATCH] Add github sensor latest tag attribute (#32360) * Add attribute latest release tag * add attrs = and only create attr Tag if exists made requested changes * change condition for _latest_release_tag to use self._github_data.latest_release_url * Correct changes * Update sensor.py * blackify --- homeassistant/components/github/sensor.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/github/sensor.py b/homeassistant/components/github/sensor.py index 96dfd4de58cb..26199763036d 100644 --- a/homeassistant/components/github/sensor.py +++ b/homeassistant/components/github/sensor.py @@ -22,6 +22,7 @@ CONF_REPOS = "repositories" ATTR_LATEST_COMMIT_MESSAGE = "latest_commit_message" ATTR_LATEST_COMMIT_SHA = "latest_commit_sha" +ATTR_LATEST_RELEASE_TAG = "latest_release_tag" ATTR_LATEST_RELEASE_URL = "latest_release_url" ATTR_LATEST_OPEN_ISSUE_URL = "latest_open_issue_url" ATTR_OPEN_ISSUES = "open_issues" @@ -78,6 +79,7 @@ class GitHubSensor(Entity): self._repository_path = None self._latest_commit_message = None self._latest_commit_sha = None + self._latest_release_tag = None self._latest_release_url = None self._open_issue_count = None self._latest_open_issue_url = None @@ -109,7 +111,7 @@ class GitHubSensor(Entity): @property def device_state_attributes(self): """Return the state attributes.""" - return { + attrs = { ATTR_PATH: self._repository_path, ATTR_NAME: self._name, ATTR_LATEST_COMMIT_MESSAGE: self._latest_commit_message, @@ -121,6 +123,9 @@ class GitHubSensor(Entity): ATTR_OPEN_PULL_REQUESTS: self._pull_request_count, ATTR_STARGAZERS: self._stargazers, } + if self._latest_release_tag is not None: + attrs[ATTR_LATEST_RELEASE_TAG] = self._latest_release_tag + return attrs @property def icon(self): @@ -136,6 +141,12 @@ class GitHubSensor(Entity): self._available = self._github_data.available self._latest_commit_message = self._github_data.latest_commit_message self._latest_commit_sha = self._github_data.latest_commit_sha + if self._github_data.latest_release_url is not None: + self._latest_release_tag = self._github_data.latest_release_url.split( + "tag/" + )[1] + else: + self._latest_release_tag = None self._latest_release_url = self._github_data.latest_release_url self._state = self._github_data.latest_commit_sha[0:7] self._open_issue_count = self._github_data.open_issue_count