Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Diagnostics support for the GitHub integration."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from aiogithubapi import GitHubAPI, GitHubException
8 
9 from homeassistant.config_entries import ConfigEntry
10 from homeassistant.const import CONF_ACCESS_TOKEN
11 from homeassistant.core import HomeAssistant
13  SERVER_SOFTWARE,
14  async_get_clientsession,
15 )
16 
17 
19  hass: HomeAssistant,
20  config_entry: ConfigEntry,
21 ) -> dict[str, Any]:
22  """Return diagnostics for a config entry."""
23  data = {"options": {**config_entry.options}}
24  client = GitHubAPI(
25  token=config_entry.data[CONF_ACCESS_TOKEN],
26  session=async_get_clientsession(hass),
27  client_name=SERVER_SOFTWARE,
28  )
29 
30  try:
31  rate_limit_response = await client.rate_limit()
32  except GitHubException as err:
33  data["rate_limit"] = {"error": str(err)}
34  else:
35  data["rate_limit"] = rate_limit_response.data.as_dict
36 
37  repositories = config_entry.runtime_data
38  data["repositories"] = {}
39 
40  for repository, coordinator in repositories.items():
41  data["repositories"][repository] = coordinator.data
42 
43  return data
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry config_entry)
Definition: diagnostics.py:21
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)