diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 520de8e584..7d45190eaa 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -1,4 +1,5 @@ -name: "Checks" +name: Check + on: pull_request: types: @@ -10,13 +11,9 @@ on: - master paths: - appdaemon - - blacklist - - critical - integration - - netdaemon - plugin - python_script - - removed - template - theme @@ -24,17 +21,19 @@ concurrency: group: checks-${{ github.ref }} cancel-in-progress: true +permissions: {} + jobs: preflight: runs-on: ubuntu-latest - name: Initialize + name: Preflight outputs: repository: ${{ steps.repository.outputs.repository }} category: ${{ steps.category.outputs.category }} removal: ${{ steps.removal.outputs.removal }} steps: - name: Check out repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.7 - name: Clone origin run: git clone --depth 1 https://github.com/hacs/default /tmp/repositories/default @@ -43,6 +42,10 @@ jobs: id: repository run: echo "repository=$(python3 -m scripts.changed.repo)" >> $GITHUB_OUTPUT + - name: Set category + id: category + run: echo "category=$(python3 -m scripts.changed.category)" >> $GITHUB_OUTPUT + - name: Check removal id: removal run: | @@ -50,38 +53,14 @@ jobs: echo "removal=true" >> $GITHUB_OUTPUT fi - - name: Set category - if: steps.removal.outputs.removal != 'true' - id: category - run: echo "category=$(python3 -m scripts.changed.category)" >> $GITHUB_OUTPUT - - - name: Clone new addition - if: steps.removal.outputs.removal != 'true' - run: | - repo=$(python3 -m scripts.changed.repo) - git clone --depth 1 "https://github.com/$repo" /tmp/repositories/addition - - - name: Upload shared artifacts - if: steps.removal.outputs.removal != 'true' - uses: actions/upload-artifact@v3 - with: - name: repositories - path: /tmp/repositories - owner: runs-on: ubuntu-latest - name: Check Owner + name: Owner needs: preflight if: needs.preflight.outputs.removal != 'true' steps: - name: Check out repository - uses: actions/checkout@v3.5.3 - - - name: Download shared artifacts - uses: actions/download-artifact@v3 - with: - name: repositories - path: /tmp/repositories + uses: actions/checkout@v4.1.7 - name: Install dependencies if needed run: scripts/setup @@ -90,13 +69,14 @@ jobs: run: python3 -m scripts.check.owner env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPOSITORY: ${{needs.preflight.outputs.repository}} - edits: + editable: runs-on: ubuntu-latest - name: Check if PR is editable + name: Editable PR steps: - name: Check out repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.7 - name: Install dependencies if needed run: scripts/setup @@ -104,49 +84,35 @@ jobs: - name: Run the check run: python3 -m scripts.check.edits - hassfest: runs-on: ubuntu-latest - name: "Check hassfest" + name: Hassfest needs: preflight - if: needs.preflight.outputs.category == 'integration' + if: needs.preflight.outputs.category == 'integration' && needs.preflight.outputs.removal != 'true' steps: - name: Check out repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.7 - - name: Download shared artifacts - uses: actions/download-artifact@v3 - with: - name: repositories - path: /tmp/repositories - - - name: Get hassfest action + - name: Clone new addition run: | - git clone --depth 1 https://github.com/home-assistant/actions.git /tmp/actions - echo "::add-matcher::/tmp/actions/hassfest/problem-matcher.json" - - - name: Enable problem-matcher - run: echo "::add-matcher::/tmp/actions/hassfest/problem-matcher.json" - - - name: Build hassfest - run: docker build /tmp/actions/hassfest -f /tmp/actions/hassfest/Dockerfile -t hassfest + git clone --depth 1 "https://github.com/${{needs.preflight.outputs.repository}}" /tmp/repositories/addition - name: Run hassfest run: | integration=$(python3 -m scripts.helpers.integration_path) domain=$(python3 -m scripts.helpers.domain) - docker run \ - --rm \ + docker run --rm \ -v "$integration":"/github/workspace/$domain" \ - hassfest + ghcr.io/home-assistant/hassfest:latest + hacs: runs-on: ubuntu-latest - name: "Run HACS Action" + name: HACS action needs: preflight if: needs.preflight.outputs.removal != 'true' steps: - name: HACS action - uses: "hacs/action@main" + uses: hacs/action@main with: repository: ${{needs.preflight.outputs.repository}} - category: ${{needs.preflight.outputs.category}} \ No newline at end of file + category: ${{needs.preflight.outputs.category}} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3836711b7c..792725da01 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -3,31 +3,9 @@ on: pull_request: branches: - master - paths: - - appdaemon - - blacklist - - critical - - integration - - netdaemon - - plugin - - python_script - - removed - - template - - theme push: branches: - master - paths: - - appdaemon - - blacklist - - critical - - integration - - netdaemon - - plugin - - python_script - - removed - - template - - theme concurrency: group: lint-${{ github.ref }} @@ -39,17 +17,42 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.7 - name: Validate run: jq --raw-output . appdaemon blacklist critical integration netdaemon plugin python_script removed template theme + jsonschema: + name: JSON schema + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4.1.7 + + - name: Critical + uses: cardinalby/schema-validator-action@3.1.1 + with: + file: "critical" + schema: "tools/jsonschema/critical.schema.json" + + - name: Repositories + uses: cardinalby/schema-validator-action@3.1.1 + with: + file: "appdaemon|blacklist|integration|netdaemon|plugin|python_script|template|theme" + schema: "tools/jsonschema/repositories.schema.json" + + - name: Removed + uses: cardinalby/schema-validator-action@3.1.1 + with: + file: "removed" + schema: "tools/jsonschema/removed.schema.json" + sorted: name: Sorted runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.7 - name: Check lists - run: python3 scripts/is_sorted.py \ No newline at end of file + run: python3 scripts/is_sorted.py diff --git a/.github/workflows/upload-critical.yml b/.github/workflows/upload-critical.yml index 3b413d2364..a2c19e5b77 100644 --- a/.github/workflows/upload-critical.yml +++ b/.github/workflows/upload-critical.yml @@ -18,10 +18,16 @@ jobs: name: Upload steps: - name: Checkout the repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.7 + + - name: Validate with JSON schema + uses: cardinalby/schema-validator-action@3.1.1 + with: + file: 'critical' + schema: 'tools/jsonschema/critical.schema.json' - name: Set up Python - uses: actions/setup-python@v5.0.0 + uses: actions/setup-python@v5.2.0 id: python with: python-version: "3.x" @@ -29,7 +35,7 @@ jobs: - name: Install AWS CLI run: | pip3 install \ - --disable-pip-version-check install \ + --disable-pip-version-check \ --ignore-installed \ awscli @@ -40,7 +46,7 @@ jobs: jq -c '[.[].repository]' < critical > upload/critical/repositories.json - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: critical path: upload/critical diff --git a/.github/workflows/upload-removed.yml b/.github/workflows/upload-removed.yml index faaae7f4ff..402abdb6be 100644 --- a/.github/workflows/upload-removed.yml +++ b/.github/workflows/upload-removed.yml @@ -18,10 +18,16 @@ jobs: name: Upload steps: - name: Checkout the repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.7 + + - name: Validate with JSON schema + uses: cardinalby/schema-validator-action@3.1.1 + with: + file: 'removed' + schema: 'tools/jsonschema/removed.schema.json' - name: Set up Python - uses: actions/setup-python@v5.0.0 + uses: actions/setup-python@v5.2.0 id: python with: python-version: "3.x" @@ -29,7 +35,7 @@ jobs: - name: Install AWS CLI run: | pip3 install \ - --disable-pip-version-check install \ + --disable-pip-version-check \ --ignore-installed \ awscli @@ -40,7 +46,7 @@ jobs: jq -c '[.[].repository]' < removed > upload/removed/repositories.json - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: removed path: upload/removed diff --git a/appdaemon b/appdaemon index ff7868b77a..fce9ea8ef0 100644 --- a/appdaemon +++ b/appdaemon @@ -46,6 +46,7 @@ "Petro31/ad_toggle_light", "Petro31/ad_who_used_the_door", "Petro31/IlluminateDoor", + "Pythm/ad-Lightwand", "roopesh/ad-qolsys", "simonhq/accu_allergies", "simonhq/act_garbage", diff --git a/blacklist b/blacklist index c05418c8d6..0fcc210132 100644 --- a/blacklist +++ b/blacklist @@ -4,11 +4,13 @@ "AdamNaj/linksys_velop", "aijayadams/hass-blueair", "AitorDB/home-assistant-sun-card", + "alexarch21/history-explorer-card", "alryaz/hass-component-yandex-smart-home", "alryaz/hass-mosenergosbyt", "amaximus/bkk_stop_card", "amelchio/logbook_cache", "And3rsL/Deebot-for-Home-Assistant", + "andrew-codechimp/HA-Mastodon-Profile-Stats", "Armaell/home-assistant-custom-icons-loader", "atomic7777/atomic_calendar", "au190/au190_bkk_stop_card", @@ -45,6 +47,7 @@ "Ceerbeerus/beerbolaget", "cgarwood/homeassistant-fullykiosk", "cgarwood/homeassistant-zwave_mqtt", + "chaptergy/noctis-grey", "clayauld/lovelace-darksky-card", "custom-cards/boilerplate-card", "custom-cards/button-entity-row", @@ -117,12 +120,18 @@ "DavidFW1960/bom_forecast", "DavidMStraub/homeassistant-homeconnect", "DCSBL/ha-homewizard-energy", + "DeebotUniverse/Deebot-4-Home-Assistant", + "dgomes/ha_rrd_recorder", + "digitaljamie/google-theme", + "disforw/inverse", + "djtimca/hagooglewifi", "djtimca/HASpaceX", "dmamontov/hass-ledfx", "doudz/homeassistant-zigate", "dr1rrb/ha-twinkly", "DSorlov/hasl-platform", "dummylabs/watchman", + "dynasticorpheus/gigasetelements-ha", "eavanvalkenburg/sia", "echoromeo/hanobo", "edenhaus/ha-prosenic", @@ -150,6 +159,7 @@ "heinoldenhuis/home_assistant_omnik_solar", "home-assistant-community-themes/template", "home-assistant-community-themes/theme-request", + "hultenvp/home_assistant_omnik_solar", "iantrich/aftership-card", "jensweimann/awb", "jessevl/homeassistant-greenchoice", @@ -181,10 +191,12 @@ "mac-zhou/midea-ac-py", "mammuth/ha-fritzbox-tools", "mampfes/hacs_wiffi", + "marcokreeft87/room-card", "marcomow/ble-bulb-card", "marrobHD/firetv-card", "MatthewFlamm/nwsradar", "mattieha/slider-button-card", + "mauro-midolo/homeassistant_electrolux_status", "maykar/compact-custom-header", "maykar/custom-header", "maykar/kiosk-mode", @@ -193,8 +205,10 @@ "Michsior14/ha-kaiterra", "Michsior14/ha-laser-egg", "mlowijs/HomeAssistant-TeslaCustomComponent", + "Mr-Groch/HA-Emulated-Color-Temp-Light", "MTrab/clever", "nagyrobi/home-assistant-custom-components-cover-rf-time-based", + "nagyrobi/home-assistant-custom-components-linkplay", "nagyrobi/home-assistant-custom-components-pfsense-gateways", "natekspencer/hacs-litterrobot", "NemesisRE/lovelace-swipe-navigation", @@ -205,10 +219,15 @@ "ntilley905/faastatus", "OpenXbox/xboxone-home-assistant", "opravdin/weback-hass", + "oziee/ha-solcast-solar", + "patrickhilker/tedee_hass_integration", + "perara/systemair-save-connect", "peternijssen/home-assistant-jumbo", "peternijssen/lovelace-postnl-card", "Petro31/ad_multizone_media_control", "Petro31/ad_people_tracker", + "pfunkmallone/HACS-camect-custom_card", + "pfunkmallone/HACS-camect-integration", "pilotak/homeassistant-mikrotik", "PiotrMachowski/Home-Assistant-custom-components-Google-Keep", "pippyn/Home-Assistant-Sensor-Groningen-Afvalwijzer", @@ -216,6 +235,7 @@ "ppanagiotis/pymusiccast", "PTST/O365-HomeAssistant", "PTST/O365Calendar-HomeAssistant", + "Racailloux/home-assistant-pijuice", "Raukze/home-assistant-fitx", "rccoleman/lamarzocco", "reharmsen/hass-youless-component", @@ -234,19 +254,26 @@ "rsnodgrass/hass-integrations", "ryanbateman/bvg-sensor", "ryannazaretian/hacs-nexia-climate-integration", + "ryanwinter/hass-rainforest-emu-2", "safepay/cover.hd_powerview", + "safepay/sensor.fronius", + "safepay/sensor.willyweather", + "sakowicz/home-assistant-tenda-tracker", "sdebruyn/homeassistant-bpost-integration", "SebuZet/samsungrac", "shaonianzhentan/ha-cloud-music", "Sholofly/arrisdcx960", "Sholofly/ZiggoNext", + "Shreyas-R/lovelace-wallpanel-screensaver", "shutupflanders/sensor.moneydashboard", "sinclairpaul/ha_purple_theme", "SNoof85/lovelace-tempometer-gauge-card", + "speleolontra/daikin_residential_altherma", "spycle/microbot_push", "tellerbop/havistapool", "tenly2000/HomeAssistant-Places", "thebino/rki_covid", + "Thomas55555/husqvarna_automower", "thomasloven/lovelace-dummy-entity-row", "thomasloven/lovelace-gap-card", "thomasloven/lovelace-gui-sandbox", @@ -256,10 +283,12 @@ "tikismoke/home-assistant-nespressoble", "timvancann/homeassistant-growatt", "tmechen/ber_status", + "toringer/home-assistant-sbanken", "troykelly/hacs-amberelectric", "Villhellm/custom-sidebar", "Villhellm/lovelace-animated-background", "walthowd/ha-automower", + "websylv/homeassistant-meteoswiss", "WillowMist/sensor.mylar", "WolfRevo/climate.spzb0001_thermostat", "xannor/ha_reolink_rest", diff --git a/integration b/integration index 485e29d6bc..a638a97925 100644 --- a/integration +++ b/integration @@ -20,7 +20,10 @@ "albertogeniola/meross-homeassistant", "albinmedoc/ha-cleanmate", "alemuro/ha-cecotec-conga", + "alengwenus/ha-sma-ev-charger", + "AlexandrErohin/home-assistant-flightradar24", "alexdelprete/ha-abb-powerone-pvi-sunspec", + "Alexwijn/SAT", "AlexxIT/Jura", "AlexxIT/SonoffLAN", "AlexxIT/WebRTC", @@ -57,10 +60,10 @@ "Andre0512/speedport", "andrew-codechimp/HA-Andrews-Arnold-Quota", "andrew-codechimp/HA-Battery-Notes", - "andrew-codechimp/HA-Mastodon-Profile-Stats", "andrzejchm/blebox_shutterbox_tilt", "andvikt/mega_hacs", "aneeshd/schedule_state", + "ankohanse/hass-dab-pumps", "Anonym-tsk/homeassistant-climate-xiaomi-remote", "anrolosia/shopping-list-with-grocy", "Antoni-Czaplicki/vulcan-for-hassio", @@ -72,7 +75,6 @@ "Archef2000/homeassistant-upsplus", "ardevd/ha-bobcatminer", "arifwn/homeassistant-whatspie-integration", - "arjenvrh/audi_connect_ha", "asantaga/lightwaverf_HA_EnergySensor", "asantaga/wiserHomeAssistantPlatform", "asev/homeassistant-helios", @@ -86,6 +88,7 @@ "aturri/ha-zcsazzurro", "atxbyea/samsungrac", "atymic/project_three_zero_ha", + "audiconnect/audi_connect_ha", "augustas2/eldes", "austinmroczek/neovolta", "avolmensky/panasonic_eolia", @@ -107,6 +110,7 @@ "BHSPitMonkey/homeassistant-garmin-mapshare", "bigbadblunt/homeassistant-lightwave2", "BigNocciolino/CryptoTracker", + "binarydev/ha-generac", "binsentsu/home-assistant-solaredge-modbus", "bkbilly/oralb_ble", "bkbilly/tpms_ble", @@ -149,10 +153,12 @@ "carleeno/elevenlabs_tts", "caronc/ha-ultrasync", "cathiele/homeassistant-goecharger", + "cazeaux/ha-iracing", "chaimchaikin/molad-ha", "chises/ha-oilfox", "Chouffy/home_assistant_libratone_zipp", "Chouffy/home_assistant_tgtg", + "ciejer/metservice-weather", "cjaliaga/home-assistant-aquarea", "CJNE/ha-myenergi", "CJNE/ha-porscheconnect", @@ -166,6 +172,10 @@ "Cmajda/ha_golemio", "cnstudio/Taipower-Bimonthly-Energy-Cost-homeassistant", "CodeFoodPixels/robovac", + "codyc1515/ha-contact-energy", + "codyc1515/ha-em6", + "codyc1515/ha-managemyhealth", + "codyc1515/ha-yeelock", "CoMPaTech/stromer", "corporategoth/ha-powerpetdoor", "CreasolTech/home-assistant-creasol-dombus", @@ -243,25 +253,23 @@ "deadbeef3137/ha-cloudflare-tunnel-monitor", "deblockt/hass-aria2", "deblockt/hass-proscenic-790T-vacuum", - "DeebotUniverse/Deebot-4-Home-Assistant", "DeerMaximum/QR-Code-Generator", "DeerMaximum/Technische-Alternative-CMI", "DeerMaximum/Technische-Alternative-CoE", "definitio/ha-rhvoice", "definitio/ha-sox", + "deler-aziz/fuel_prices_sweden", "delphiki/hass-pronote", "denpamusic/homeassistant-plum-ecomax", "dext0r/yandex_smart_home", "dgomes/ha_erse", "dgomes/ha_generic_water_heater", - "dgomes/ha_rrd_recorder", "dimagoltsman/ha-proof-dashcam-integration", "dingo35/ha-SmartEVSEv3", - "disforw/inverse", "djansen1987/SAJeSolar", "djbulsink/panasonic_ac", + "djerik/beolink-ha", "djerik/wavinsentio-ha", - "djtimca/hagooglewifi", "djtimca/harocketlaunchlive", "djtimca/hasatellitetracker", "dlarrick/hass-kumo", @@ -286,7 +294,6 @@ "dvd-dev/hilo", "dwainscheeren/dwains-lovelace-dashboard", "dylandoamaral/trakt-integration", - "dynasticorpheus/gigasetelements-ha", "ec-blaster/magicswitchbot-homeassistant", "edekeijzer/osrm_travel_time", "edwork/homeassistant-peloton-sensor", @@ -313,6 +320,7 @@ "erikkastelec/hass-WEM-Portal", "eseglem/hass-wattbox", "evantaur/seiverkot-consumption", + "evercape/hass-resol-KM2", "evilmarty/mjpeg-timelapse", "exKAjFASH/media_player.elkoep_lara", "exxamalte/home-assistant-custom-components-nsw-rural-fire-service-fire-danger", @@ -328,6 +336,7 @@ "fineemb/xiaomi-cloud", "fineemb/Xiaomi-Smart-Multipurpose-Kettle", "finity69x2/nws_alerts", + "firstof9/ha-gasbuddy", "firstof9/ha-openei", "FL550/dwd_weather", "fondberg/spotcast", @@ -351,6 +360,8 @@ "gcobb321/icloud3", "gcorgnet/sensor.emby_upcoming_media", "gdgib/span", + "geertmeersman/cloudlibrary", + "geertmeersman/eeveemobility", "geertmeersman/miwa", "geertmeersman/mobile_vikings", "geertmeersman/nexxtmove", @@ -365,6 +376,7 @@ "gicamm/homeassistant-comelit", "gieljnssns/buienalarm-sensor-homeassistant", "gieljnssns/kostalpiko-sensor-homeassistant", + "gillesvs/librelink", "gilsonmandalogo/hacs-minerstat", "gjohansson-ST/sector", "gndean/home-assistant-hypervolt-charger", @@ -379,6 +391,7 @@ "gtjadsonsantos/vapix", "guerrerotook/securitas-direct-new-api", "GuilleGF/hassio-ovh", + "GuyKh/ims-custom-component", "GuyLewin/home-assistant-crunch-o-meter", "GuyLewin/home-assistant-lifetime-fitness", "GuySie/ha-meural", @@ -408,11 +421,9 @@ "HomeAssistant-Mods/home-assistant-miele", "hostcc/hass-gs-alarm", "HrGaertner/HA-vent-optimization", - "htmltiger/config-editor", "hudsonbrendon/ha_epic_games", "hudsonbrendon/sensor.drivvo", "hugobloem/stateful_scenes", - "hultenvp/home_assistant_omnik_solar", "hultenvp/solis-sensor", "hwmland/homeassistant-xmrig", "hwmland/homeassistant-xmrpool_stat", @@ -441,6 +452,7 @@ "JaccoR/hass-entso-e", "jampez77/DVLA-Vehicle-Enquiry-Service", "jampez77/Ryanair", + "JanGiese/notion_todo", "jaroschek/home-assistant-myuplink", "jaruba/ha-samsungtv-tizen", "jason0x43/hacs-hubitat", @@ -460,9 +472,9 @@ "jihao/rokid-webhook-hass", "jippi/hass-nordnet", "jjlawren/sonos_cloud", - "jm-73/Indego", "jmcollin78/solar_optimizer", "jmcollin78/versatile_thermostat", + "jmcruvellier/little_monkey", "jnxxx/homeassistant-dabblerdk_powermeterreader", "jobvk/Home-Assistant-Windcentrale", "joggs/home_assistant_ebeco", @@ -471,7 +483,6 @@ "joleys/niko-home-control-II", "jonasbkarlsson/ev_smart_charging", "JonasJoKuJonas/homeassistant-WebUntis", - "jonasniesner/open_epaper_link_homeassistant", "JonasPed/homeassistant-eloverblik", "jonkristian/wasteplan_trv", "joselcaguilar/azure-openai-ha", @@ -485,10 +496,12 @@ "jugla/keyatome", "jugla/worldtidesinfocustom", "juicejuice/homeassistant_redback", + "junkfix/config-editor", "JurajNyiri/HomeAssistant-Atrea", "JurajNyiri/HomeAssistant-qBitTorrentAlternativeSpeed", "JurajNyiri/HomeAssistant-Tapo-Control", "JurajNyiri/HomeAssistant-Tavos", + "jwillemsen/daikin_onecta", "jxlarrea/ha-emfitqs", "kaechele/napoleon-efire", "kalanda/homeassistant-aemet-sensor", @@ -528,6 +541,7 @@ "kpoppel/homeassistant-eforsyning", "kpoppel/homeassistant-novafos", "krahabb/meross_lan", + "krasnoukhov/homeassistant-oncharger", "kubawolanin/ha-reaper", "kuchel77/diskspace", "kukulich/home-assistant-jablotron100", @@ -542,6 +556,7 @@ "laszlojakab/homeassistant-easycontrols", "LavermanJJ/home-assistant-solarfocus", "lbbrhzn/ocpp", + "legrego/homeassistant-combustion", "legrego/homeassistant-elasticsearch", "leikoilja/ha-google-home", "Lektrico/ha_lektrico", @@ -551,6 +566,7 @@ "lewei50/ha_iammeter_modbus", "libdyson-wg/ha-dyson", "lichtteil/local_luftdaten", + "Limych/ha-apparent-temperature", "Limych/ha-average", "Limych/ha-beward", "Limych/ha-car_wash", @@ -559,7 +575,7 @@ "Limych/ha-jq300", "Limych/ha-narodmon", "Limych/ha-snowtire", - "Limych/ha-temperature-feels-like", + "Limych/ha-tor_check", "lindell/home-assistant-svt-play", "lindell/home-assistant-tv4-play", "linsvensson/sensor.greenely", @@ -578,7 +594,9 @@ "maciej-or/hikvision_next", "macxq/foxess-ha", "madpilot/hass-amber-electric", + "mag1024/bosch-alarm-homeassistant", "make-all/metlink-nz", + "Mallonbacka/custom-component-cloudwatch", "mampfes/ha_bayernluefter", "mampfes/ha_epex_spot", "mampfes/ha_freeair_connect", @@ -587,18 +605,21 @@ "mandarons/ha-bouncie", "marcelwestrahome/home-assistant-niu-component", "marcoboers/home-assistant-quatt", + "MarcoGos/davis_vantage", "marcolivierarsenault/moonraker-home-assistant", "markgdev/home-assistant_OctopusAgile", "markvader/ha-rpi_rf", "markvader/sonic", "marotoweb/home-assistant-vacuum-viomise", "marq24/ha-senec-v3", + "marq24/ha-tibber-pulse-local", + "marq24/ha-waterkotte", "MartinDybal/TapHome-HomeAssistant", "Martinvdm/garbage-nissewaard-homeassistant", "masaccio/ha-kingspan-watchman-sensit", + "Mat931/digitalstrom-homeassistant", "mathieu-mp/homeassistant-intex-spa", "mattrayner/pod-point-home-assistant-component", - "mauro-midolo/homeassistant_electrolux_status", "mawinkler/astroweather", "mb-software/homeassistant-powerbrain", "mbillow/ha-chargepoint", @@ -629,7 +650,6 @@ "moralmunky/Home-Assistant-Mail-And-Packages", "morosanmihail/HA-LondonTfL", "Mr-Groch/ambihue", - "Mr-Groch/HA-Emulated-Color-Temp-Light", "Mr-Groch/HA-ESA-NASK-Air-Quality", "mrk-its/homeassistant-blitzortung", "MrSleeps/Juwel-HeliaLux-Home-Assistant-Custom-Component", @@ -656,7 +676,6 @@ "myTselection/telenet_telemeter", "myTselection/youfone_be", "N0ciple/hass-kef-connector", - "nagyrobi/home-assistant-custom-components-linkplay", "nathanmarlor/foxess_modbus", "Nazze/ha_best_bottrop_garbage_collection", "nbogojevic/homeassistant-midea-air-appliances-lan", @@ -682,19 +701,22 @@ "nordicopen/easee_hass", "nstrelow/ha_philips_android_tv", "nyffchanium/argoclima-integration", + "odya/hass-ina219-ups-hat", "ofalvai/home-assistant-candy", "ohheyrj/home-assistant-aws-codepipeline", "olibos/HomeAssistant-RecycleApp", "ollo69/ha-samsungtv-smart", "ollo69/ha-smartthinq-sensors", + "OpenEPaperLink/Home_Assistant_Integration", "osk2/panasonic_smart_app", + "osohotwateriot/osoenergy_community", "oven-lab/tuya_cloud_map_extractor", - "oziee/ha-solcast-solar", "pail23/stiebel_eltron_isg_component", + "pantherale0/ha-nintendoparentalcontrols", "parautenbach/hass-shairport-sync", + "parvez/network_scanner", "Patrick762/hassio-bluetti-bt", "Patrick762/hassio-streamdeck", - "patrickhilker/tedee_hass_integration", "patrickribbing/sjofartsverket_viva-component", "Paul-dH/Home-Assisant-Sensor-OvApi", "PaulAnnekov/home-assistant-padavan-tracker", @@ -705,14 +727,14 @@ "pcourbin/imaprotect", "pdw-mb/tsmart_ha", "peetereczek/ztm", - "perara/systemair-save-connect", "peribeir/homeassistant-rademacher", "PeteRager/lennoxs30", "petergridge/irrigation-V5", "petergridge/openweathermaphistory", "petretiandrea/home-assistant-tapo-p100", "Petro31/ha-integration-multizone-controller", - "pfunkmallone/HACS-camect-integration", + "Pho3niX90/solis_modbus", + "physje/waterinfo", "Pigotka/ha-cc-jablotron-cloud", "piitaya/home-assistant-qubino-wire-pilot", "pilotak/homeassistant-attributes", @@ -737,6 +759,7 @@ "Pirate-Weather/pirate-weather-ha", "pkarimov/jukeaudio_ha", "plamish/xcomfort", + "plmilord/Hass.io-custom-component-ikamand", "plmilord/Hass.io-custom-component-spaclient", "Poeschl/Remote-PicoTTS", "popeen/Home-Assistant-Custom-Component-Hemglass", @@ -753,7 +776,6 @@ "pyalarmdotcom/alarmdotcom", "Pyhass/Hive-Custom-Component", "r-renato/ha-climacell-weather", - "Racailloux/home-assistant-pijuice", "radical-squared/aquatemp", "Rain1971/V2C_trydant", "raman325/ha-zoom-automation", @@ -773,6 +795,7 @@ "RobertD502/home-assistant-petkit", "RobHofmann/HomeAssistant-GreeClimateComponent", "RobHofmann/HomeAssistant-PhilipsAndroid2014", + "robinostlund/homeassistant-svk-mimer", "robinostlund/homeassistant-volkswagencarnet", "robmarkcole/HASS-amazon-rekognition", "robmarkcole/HASS-Machinebox-Classificationbox", @@ -802,13 +825,10 @@ "ryanbdclark/owlet", "ryanmac8/HA-Mint-Mobile", "ryanmac8/Home-Assistant-Marta", - "ryanwinter/hass-rainforest-emu-2", "rytilahti/homeassistant-upnp-availability", - "safepay/sensor.fronius", - "safepay/sensor.willyweather", - "sakowicz/home-assistant-tenda-tracker", "samjsmart/ha-zone4", "samuolis/brink", + "sander1988/Indego", "sanghviharshit/ha-mila", "sanghviharshit/ha-monarchmoney", "sbabcock23/hass-tryfi", @@ -853,7 +873,7 @@ "sockless-coding/panasonic_cc", "soloam/ha-pid-controller", "sopelj/hass-ember-mug-component", - "speleolontra/daikin_residential_altherma", + "SplinterHead/ha-honeygain", "sprocket-9/hacs-nuvo-serial", "spycle/tuneblade", "stackia/ha-deye-dehumidifier", @@ -874,14 +894,16 @@ "syssi/xiaomi_fan", "syssi/xiaomi_raw", "syssi/xiaomiplug", - "t0mer/ims-custom-component", "t0mer/manish-custom-notifier", "t0mer/matterbridge-custom-notifier", "taarskog/home-assistant-component-somweb", "tadasdanielius/daikin_altherma", + "Taraman17/hass-homee", "Tasshack/dreame-vacuum", + "tbouron/ha-agur", "tefinger/hass-brematic", "TekniskSupport/home-assistant-resrobot", + "tetele/hvac_group", "tetienne/veolia-custom-component", "TheByteStuff/RemoteSyslog_Service", "thecode/ha-onewire-sysbus", @@ -891,7 +913,6 @@ "ThermIQ/thermiq_mqtt-ha", "thevoltagesource/LennoxiComfort", "thisisthetechie/home-assistant-sickgear", - "Thomas55555/husqvarna_automower", "thomasloven/hass-browser_mod", "thomasloven/hass-favicon", "thomasloven/hass-fontawesome", @@ -914,13 +935,14 @@ "tomasbedrich/home-assistant-skydance", "tomasmcguinness/homeassistant-mixergy", "TomBrien/cardiffwaste-ha", + "tonyroberts/hawundasmart", "toreamun/amshan-homeassistant", "toreamun/victorsmartkill-homeassistant", "toringer/home-assistant-heru", "toringer/home-assistant-met-next-6-hours-forecast", "toringer/home-assistant-metnowcast", - "toringer/home-assistant-sbanken", "travisghansen/hass-pfsense", + "tronikos/google_assistant_sdk_custom", "troykelly/hacs-trackimo", "troykelly/homeassistant-au-nsw-covid", "trvqhuy/nestup_evn", @@ -935,10 +957,15 @@ "tybritten/ical-sensor-homeassistant", "tykeal/homeassistant-rental-control", "ualex73/monitor_docker", + "ufozone/ha-unifi-voucher", "ufozone/ha-zcs-mower", "UI-Lovelace-Minimalist/UI", "user2684/imou_life", "v1ack/lelight", + "vakio-ru/vakio_atmosphere", + "vakio-ru/vakio_base_smart", + "vakio-ru/vakio_kiv", + "vakio-ru/vakio_openair", "vanstinator/hass-raincloud", "Vaskivskyi/ha-asusrouter", "Vaskivskyi/ha-chroma", @@ -949,11 +976,12 @@ "viktak/ha-cc-abalin-nameday", "viktak/ha-cc-openweathermap_all", "vincentwolsink/home_assistant_micronova_agua_iot", + "vingerha/gtfs2", "vinteo/hass-opensprinkler", "viragelabs/virage_dashboard", "vlumikero/home-assistant-securitas", "vmakeev/huawei_mesh_router", - "websylv/homeassistant-meteoswiss", + "Vova-SH/termux-api", "weltenwort/home-assistant-rct-power-integration", "wernerhp/ha.integration.load_shedding", "werthdavid/homeassistant-pulsatrix-local-mqtt", @@ -963,7 +991,7 @@ "WillCodeForCats/tekmar-482", "willholdoway/hifiberry", "wills106/homeassistant-solax-modbus", - "wimb0/home-assistant-saj-modbus", + "wimb0/home-assistant-saj-r5-modbus", "wizmo2/zidoo-player", "wlcrs/huawei_solar", "wolffshots/hass-audiobookshelf", @@ -984,4 +1012,4 @@ "zeronounours/HA-custom-component-energy-meter", "zigul/HomeAssistant-CEZdistribuce", "ZsBT/hass-w1000-portal" -] \ No newline at end of file +] diff --git a/plugin b/plugin index 0a4d0ad633..b9b9895f9a 100644 --- a/plugin +++ b/plugin @@ -6,7 +6,6 @@ "abualy/philips-tv-remote-card", "adizanni/floor3d-card", "aex351/home-assistant-neerslag-card", - "alexarch21/history-explorer-card", "amaximus/bkk-stop-card", "amaximus/fkf-garbage-collection-card", "amaximus/garbage-collection-card", @@ -69,6 +68,7 @@ "custom-cards/unused-card", "CyrisXD/love-lock-card", "czz/timbox-remote-control-card", + "DanChaltiel/heatzy-pilote-card", "danimart1991/pvpc-hourly-pricing-card", "DanteWinters/lux-power-distribution-card", "daredoes/default-dashboard", @@ -133,8 +133,6 @@ "gurbyz/power-wheel-card", "hasl-sensor/lovelace-hasl-departure-card", "hasl-sensor/lovelace-hasl-traffic-status-card", - "htmltiger/config-editor-card", - "htmltiger/numberbox-card", "hulkhaugen/hass-bha-icons", "Hypfer/lovelace-valetudo-map-card", "iablon/HomeAssistant-Touchpad-Card", @@ -160,12 +158,13 @@ "jcwillox/lovelace-canary", "jcwillox/lovelace-paper-buttons-row", "jeremywillans/lovelace-roomba-vacuum-card", - "johanfrick/custom-sonos-card", "jonahkr/power-distribution-card", "jonkristian/entur-card", "jtbgroup/kodi-playlist-card", "jtbgroup/kodi-search-card", "junalmeida/homeassistant-minimalistic-area-card", + "junkfix/config-editor-card", + "junkfix/numberbox-card", "JurajNyiri/PlexMeetsHomeAssistant", "kalkih/mini-graph-card", "kalkih/mini-media-player", @@ -203,7 +202,8 @@ "Makin-Things/weather-radar-card", "mampfes/ha-knx-uf-iconset", "marcokreeft87/formulaone-card", - "marcokreeft87/room-card", + "Mariusthvdb/custom-attributes", + "Mariusthvdb/custom-icon-color", "Mariusthvdb/Custom-icons", "Mariusthvdb/custom-ui", "marrobHD/rotel-card", @@ -216,6 +216,7 @@ "maxwroc/github-flexi-card", "MesserschmittX/lovelace-nicehash-excavator-monitor-card", "MindFreeze/ha-sankey-chart", + "mlamberts78/weather-chart-card", "Mofeywalker/openmensa-lovelace-card", "MrBartusek/MeteoalarmCard", "nathanmarlor/foxess_modbus_charge_period_card", @@ -233,7 +234,6 @@ "ownbee/bootstrap-grid-card", "peetereczek/ztm-stop-card", "petergridge/Irrigation-Card", - "pfunkmallone/HACS-camect-custom_card", "pgorod/power-todoist-card", "phischdev/lovelace-mushroom-better-sliders", "piitaya/lovelace-climate-mode-entity-row", @@ -248,6 +248,7 @@ "pmongloid/flipdown-timer-card", "postlund/search-card", "PRProd/HA-Firemote", + "punxaphil/custom-sonos-card", "queimadus/cover-icon-element", "queimadus/last-changed-element", "r-renato/ha-card-waze-travel-time", @@ -267,17 +268,19 @@ "sbryfcz/harmony-card", "sdelliot/pie-chart-card", "Sese-Schneider/ha-energy-overview-card", - "Shreyas-R/lovelace-wallpanel-screensaver", + "ShadowAya/anchor-card", "Sian-Lee-SA/honeycomb-menu", "silentbil/silent-bus", "silentbil/silent-remotes-card", "slipx06/sunsynk-power-flow-card", "sopelj/lovelace-kanji-clock-card", + "stefmde/HomeAssistant-TwitchFollowedLiveStreamsCard", "swingerman/lovelace-fluid-level-background-card", "t1gr0u/rain-gauge-card", "t1gr0u/uv-index-card", "TarheelGrad1998/gallery-card", "tcarlsen/lovelace-light-with-profiles", + "tdvtdv/ha-tdv-bar", "TheLastProject/lovelace-media-art-background", "tholgir/TodoIst-Task-List", "thomasloven/lovelace-auto-entities", @@ -295,6 +298,7 @@ "tomasrudh/analogclock", "tomvanswam/compass-card", "totaldebug/atomic-calendar-revive", + "trollix/ha-tsmoon-card", "tungmeister/hass-blind-card", "turbulator/pandora-cas-card", "twrecked/lovelace-hass-aarlo", @@ -313,4 +317,4 @@ "wiltodelta/homeassistant-sugartv-card", "zanna-37/hass-swipe-navigation", "zeronounours/lovelace-energy-entity-row" -] +] \ No newline at end of file diff --git a/removed b/removed index 94a8100fbb..15bc5882f1 100644 --- a/removed +++ b/removed @@ -1497,5 +1497,179 @@ "reason": "Repository is archived", "removal_type": "remove", "link": "https://github.com/rccoleman/lamarzocco" + }, + { + "repository": "toringer/home-assistant-sbanken", + "reason": "Sbanken API shutdown", + "removal_type": "remove", + "link": "https://github.com/toringer/home-assistant-sbanken" + }, + { + "repository": "perara/systemair-save-connect", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/perara/systemair-save-connect" + }, + { + "repository": "djtimca/hagooglewifi", + "reason": "Repository is no longer maintained", + "removal_type": "remove", + "link": "https://github.com/hacs/integration/issues/3440" + }, + { + "repository": "mauro-midolo/homeassistant_electrolux_status", + "reason": "Repository has been deleted.", + "removal_type": "remove", + "link": "https://github.com/hacs/integration/issues/3500" + }, + { + "repository": "Shreyas-R/lovelace-wallpanel-screensaver", + "reason": "Repository is no longer maintained", + "removal_type": "remove", + "link": "https://github.com/Shreyas-R/lovelace-wallpanel-screensaver" + }, + { + "repository": "hultenvp/home_assistant_omnik_solar", + "reason": "Requested by author", + "removal_type": "remove", + "link": "https://github.com/hultenvp/home_assistant_omnik_solar" + }, + { + "repository": "Thomas55555/husqvarna_automower", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2495" + }, + { + "repository": "ryanwinter/hass-rainforest-emu-2", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2495" + }, + { + "repository": "speleolontra/daikin_residential_altherma", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2495" + }, + { + "repository": "disforw/inverse", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2495" + }, + { + "repository": "DeebotUniverse/Deebot-4-Home-Assistant", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2495" + }, + { + "repository": "alexarch21/history-explorer-card", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2495" + }, + { + "repository": "digitaljamie/google-theme", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2495" + }, + { + "repository": "chaptergy/noctis-grey", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2495" + }, + { + "repository": "pfunkmallone/HACS-camect-integration", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2536" + }, + { + "repository": "patrickhilker/tedee_hass_integration", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2536" + }, + { + "repository": "pfunkmallone/HACS-camect-custom_card", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2536" + }, + { + "repository": "dgomes/ha_rrd_recorder", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2536" + }, + { + "repository": "oziee/ha-solcast-solar", + "reason": "Repository no longer exsist", + "removal_type": "remove", + "link": "https://github.com/hacs/integration/issues/3745" + }, + { + "repository": "Racailloux/home-assistant-pijuice", + "reason": "Repository no longer exsist", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2537" + }, + { + "repository": "Mr-Groch/HA-Emulated-Color-Temp-Light", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2609" + }, + { + "repository": "sakowicz/home-assistant-tenda-tracker", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2609" + }, + { + "repository": "dynasticorpheus/gigasetelements-ha", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2666" + }, + { + "repository": "websylv/homeassistant-meteoswiss", + "reason": "Repository no longer exsist", + "removal_type": "remove", + "link": "https://github.com/hacs/integration/issues/4023" + }, + { + "repository": "marcokreeft87/room-card", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2683" + }, + { + "repository": "nagyrobi/home-assistant-custom-components-linkplay", + "reason": "Requested by author", + "removal_type": "remove", + "link": "https://github.com/hacs/integration/issues/4031" + }, + { + "repository": "andrew-codechimp/HA-Mastodon-Profile-Stats", + "reason": "Retiring as Mastodon core duplicates functionality", + "removal_type": "remove", + "link": "https://github.com/andrew-codechimp/HA-Mastodon-Profile-Stats" + }, + { + "repository": "safepay/sensor.willyweather", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2689" + }, + { + "repository": "safepay/sensor.fronius", + "reason": "Repository is archived", + "removal_type": "remove", + "link": "https://github.com/hacs/default/pull/2689" } ] \ No newline at end of file diff --git a/scripts/check/owner.py b/scripts/check/owner.py index 024d9a51fe..685cb34f85 100644 --- a/scripts/check/owner.py +++ b/scripts/check/owner.py @@ -1,7 +1,6 @@ import asyncio import os -from scripts.changed.repo import get_repo from scripts.helpers.event import get_event from scripts.remove_publishers import REMOVED_PUBLISHERS from aiogithubapi import GitHub, AIOGitHubAPIException @@ -11,7 +10,7 @@ async def check(): print("Information: https://hacs.xyz/docs/publish/include#check-owner") - repo = get_repo() + repo = os.environ["REPOSITORY"] event = get_event() actor = event["pull_request"]["user"]["login"] repo_owner = repo.split("/")[0].lower() diff --git a/theme b/theme index c145dc9c5a..571020e76f 100644 --- a/theme +++ b/theme @@ -15,10 +15,8 @@ "basnijholt/lovelace-ios-themes", "bbbenji/synthwave-hass", "catppuccin/home-assistant", - "chaptergy/noctis-grey", "coltondick/nordic-theme-main", "DickSwart/swart_ninja_dark_theme", - "digitaljamie/google-theme", "einschmidt/github_dark_theme", "einschmidt/github_light_theme", "estiens/sweet_pink_hass_theme", @@ -62,12 +60,13 @@ "naofireblade/clear-theme", "naofireblade/clear-theme-dark", "Neekster/MidnightTeal", + "Nerwyn/material-rounded-theme", "Nihvel/your_name", - "orickcorreia/caule-themes-pack-1", "pacjo/google_dark_animated", "pbeckcom/green_slate_theme", "piitaya/lovelace-mushroom-themes", "Poeschl/slate_red", + "ricardoquecria/caule-themes-pack-1", "robinwittebol/whatsapp-theme", "seangreen2/slate_theme", "SnakeFist007/ha_vastayan_bond", @@ -76,4 +75,4 @@ "TilmanGriesel/graphite", "williamahartman/noctis-solarized", "wowgamr/animated-weather-card" -] +] \ No newline at end of file diff --git a/tools/jsonschema/critical.schema.json b/tools/jsonschema/critical.schema.json new file mode 100644 index 0000000000..cf6316e4ff --- /dev/null +++ b/tools/jsonschema/critical.schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Schema for critical repositories", + "type": "array", + "items": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "pattern": "^[\\w\\.-]+\/[\\w\\.-]+$" + }, + "reason": { + "type": "string" + }, + "link": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "repository", + "reason", + "link" + ] + } +} \ No newline at end of file diff --git a/tools/jsonschema/removed.schema.json b/tools/jsonschema/removed.schema.json new file mode 100644 index 0000000000..0691c42a3d --- /dev/null +++ b/tools/jsonschema/removed.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Schema for removed repositories", + "type": "array", + "items": { + "type": "object", + "properties": { + "link": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "removal_type": { + "type": "string" + }, + "repository": { + "type": "string", + "pattern": "^[\\w\\.-]+\/[\\w\\.-]+$" + } + }, + "required": [ + "removal_type", + "repository" + ] + } +} \ No newline at end of file diff --git a/tools/jsonschema/repositories.schema.json b/tools/jsonschema/repositories.schema.json new file mode 100644 index 0000000000..ca4769e29c --- /dev/null +++ b/tools/jsonschema/repositories.schema.json @@ -0,0 +1,9 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Shema for a repository list", + "type": "array", + "items": { + "type": "string", + "pattern": "^[\\w\\.-]+\/[\\w\\.-]+$" + } +} \ No newline at end of file