{"id":15493957,"url":"https://github.com/boralyl/github-custom-component-tutorial","last_synced_at":"2025-10-28T20:31:36.083Z","repository":{"id":42187382,"uuid":"270437935","full_name":"boralyl/github-custom-component-tutorial","owner":"boralyl","description":"A tutorial for creating a custom component for Home Assistant using GitHub's API.","archived":false,"fork":false,"pushed_at":"2024-08-15T03:06:26.000Z","size":65,"stargazers_count":74,"open_issues_count":1,"forks_count":20,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-19T11:30:13.753Z","etag":null,"topics":["custom-component","home-assistant","homeassistant","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boralyl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-07T21:29:49.000Z","updated_at":"2024-10-16T20:19:56.000Z","dependencies_parsed_at":"2024-03-02T18:27:23.869Z","dependency_job_id":"1eaa1e56-a8ee-4c58-9544-2494f1fdfc28","html_url":"https://github.com/boralyl/github-custom-component-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boralyl%2Fgithub-custom-component-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boralyl%2Fgithub-custom-component-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boralyl%2Fgithub-custom-component-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boralyl%2Fgithub-custom-component-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boralyl","download_url":"https://codeload.github.com/boralyl/github-custom-component-tutorial/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238716031,"owners_count":19518554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["custom-component","home-assistant","homeassistant","tutorial"],"created_at":"2024-10-02T08:10:12.403Z","updated_at":"2025-10-28T20:31:30.772Z","avatar_url":"https://github.com/boralyl.png","language":"Python","readme":"# Github Custom for Home Assistant\n\n[![](https://img.shields.io/github/license/boralyl/github-custom-component-tutorial?style=for-the-badge)](LICENSE)\n[![](https://img.shields.io/github/actions/workflow/status/boralyl/github-custom-component-tutorial/pythonpackage.yaml?branch=main\u0026style=for-the-badge)](https://github.com/boralyl/github-custom-component-tutorial/actions)\n\n## About\n\nThis repo contains a custom component for [Home Assistant](https://www.home-assistant.io) that was created in a tutorial series\non [aarongodfrey.dev](https://aarongodfrey.dev/home%20automation/building_a_home_assistant_custom_component_part_1/).\n\nThe tutorial walks through the steps to create a custom component for use in Home Assistant.\n\n- [Part 1: Project Structure and Basics](https://aarongodfrey.dev/home%20automation/building_a_home_assistant_custom_component_part_1/)\n- [Part 2: Unit Testing and Continuous Integration](https://aarongodfrey.dev/home%20automation/building_a_home_assistant_custom_component_part_2/)\n- [Part 3: Adding a Config Flow](https://aarongodfrey.dev/home%20automation/building_a_home_assistant_custom_component_part_3/)\n- [Part 4: Adding an Options Flow](https://aarongodfrey.dev/home%20automation/building_a_home_assistant_custom_component_part_4/)\n- [Part 5: Debugging](https://aarongodfrey.dev/home%20automation/building_a_home_assistant_custom_component_part_5/)\n\n## What It Is\n\nAn integration that monitors [GitHub](https://github.com/) repositories specified in a `configuration.yaml` file\nor optionally via the Integrations UI.\n\n## Running Tests\n\nTo run the test suite create a virtualenv (I recommend checking out [pyenv](https://github.com/pyenv/pyenv) and [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) for this) and install the test requirements.\n\n```bash\n$ pip install -r requirements.test.txt\n```\n\nAfter the test dependencies are installed you can simply invoke `pytest` to run\nthe test suite.\n\n```bash\n$ pytest\nTest session starts (platform: linux, Python 3.7.5, pytest 5.4.3, pytest-sugar 0.9.4)\nrootdir: /home/aaron/projects/github-custom, inifile: setup.cfg, testpaths: tests\nplugins: forked-1.3.0, timeout-1.4.2, cov-2.10.1, aiohttp-0.3.0, requests-mock-1.8.0, xdist-2.1.0, sugar-0.9.4, test-groups-1.0.3, homeassistant-custom-component-0.0.20\ncollecting ...\n tests/test_config_flow.py ✓✓✓✓✓✓✓✓✓✓✓                                                                                                                                          85% ████████▌\n tests/test_sensor.py ✓✓                                                                                                                                                       100% ██████████\n\n----------- coverage: platform linux, python 3.7.5-final-0 -----------\nName                                             Stmts   Miss  Cover   Missing\n------------------------------------------------------------------------------\ncustom_components/__init__.py                        0      0   100%\ncustom_components/github_custom/__init__.py         12      0   100%\ncustom_components/github_custom/config_flow.py      23      0   100%\ncustom_components/github_custom/const.py            18      0   100%\ncustom_components/github_custom/sensor.py           97      5    95%   86-89, 121\n------------------------------------------------------------------------------\nTOTAL                                              150      5    97%\n\nRequired test coverage of 93.0% reached. Total coverage: 96.67%\n\nResults (0.73s):\n      13 passed\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboralyl%2Fgithub-custom-component-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboralyl%2Fgithub-custom-component-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboralyl%2Fgithub-custom-component-tutorial/lists"}