diff --git a/homeassistant/components/github/sensor.py b/homeassistant/components/github/sensor.py index 26199763036..68b5586207a 100644 --- a/homeassistant/components/github/sensor.py +++ b/homeassistant/components/github/sensor.py @@ -30,6 +30,11 @@ ATTR_LATEST_OPEN_PULL_REQUEST_URL = "latest_open_pull_request_url" ATTR_OPEN_PULL_REQUESTS = "open_pull_requests" ATTR_PATH = "path" ATTR_STARGAZERS = "stargazers" +ATTR_FORKS = "forks" +ATTR_CLONES = "clones" +ATTR_CLONES_UNIQUE = "clones_unique" +ATTR_VIEWS = "views" +ATTR_VIEWS_UNIQUE = "views_unique" DEFAULT_NAME = "GitHub" @@ -86,6 +91,11 @@ class GitHubSensor(Entity): self._pull_request_count = None self._latest_open_pr_url = None self._stargazers = None + self._forks = None + self._clones = None + self._clones_unique = None + self._views = None + self._views_unique = None self._github_data = github_data @property @@ -122,6 +132,11 @@ class GitHubSensor(Entity): ATTR_LATEST_OPEN_PULL_REQUEST_URL: self._latest_open_pr_url, ATTR_OPEN_PULL_REQUESTS: self._pull_request_count, ATTR_STARGAZERS: self._stargazers, + ATTR_FORKS: self._forks, + ATTR_CLONES: self._clones, + ATTR_CLONES_UNIQUE: self._clones_unique, + ATTR_VIEWS: self._views, + ATTR_VIEWS_UNIQUE: self._views_unique, } if self._latest_release_tag is not None: attrs[ATTR_LATEST_RELEASE_TAG] = self._latest_release_tag @@ -154,6 +169,11 @@ class GitHubSensor(Entity): self._pull_request_count = self._github_data.pull_request_count self._latest_open_pr_url = self._github_data.latest_open_pr_url self._stargazers = self._github_data.stargazers + self._forks = self._github_data.forks + self._clones = self._github_data.clones + self._clones_unique = self._github_data.clones_unique + self._views = self._github_data.views + self._views_unique = self._github_data.views_unique class GitHubData: @@ -190,6 +210,11 @@ class GitHubData: self.pull_request_count = None self.latest_open_pr_url = None self.stargazers = None + self.forks = None + self.clones = None + self.clones_unique = None + self.views = None + self.views_unique = None def update(self): """Update GitHub Sensor.""" @@ -197,6 +222,7 @@ class GitHubData: repo = self._github_obj.get_repo(self.repository_path) self.stargazers = repo.stargazers_count + self.forks = repo.forks_count open_issues = repo.get_issues(state="open", sort="created") if open_issues is not None: @@ -218,6 +244,16 @@ class GitHubData: if releases and releases.totalCount > 0: self.latest_release_url = releases[0].html_url + clones = repo.get_clones_traffic() + if clones is not None: + self.clones = clones.get("count") + self.clones_unique = clones.get("uniques") + + views = repo.get_views_traffic() + if views is not None: + self.views = views.get("count") + self.views_unique = views.get("uniques") + self.available = True except self._github.GithubException as err: _LOGGER.error("GitHub error for %s: %s", self.repository_path, err)