Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
6a49a25
Handle orphaned ignored config entries (#153093)
erwindouna Feb 16, 2026
5d1cb4d
Fix orphaned ignored typo (#163137)
erwindouna Feb 16, 2026
e48bd88
Improve GitHub Actions workflow metadata and concurrency settings (#1…
frenck Feb 16, 2026
63f4653
Fix Matter translation key not set for primary entities (#161708)
TheJulianJES Feb 16, 2026
3f00403
Fix incorrect use of Platform enum in evohome tests (#163143)
epenet Feb 16, 2026
d464806
Fix incorrect use of Platform enum in huum tests (#163145)
epenet Feb 16, 2026
9477fa4
Fix incorrect use of Platform enum in flexit_bacnet tests (#163144)
epenet Feb 16, 2026
b888579
Fix incorrect use of Platform enum in roborock tests (#163142)
epenet Feb 16, 2026
4510ca7
Fix incorrect use of Platform enum in wmspro tests (#163152)
epenet Feb 16, 2026
37af004
Deprecate async_listen in labs (#162648)
arturpragacz Feb 16, 2026
75b5248
Fix incorrect use of Platform enum in utility_meter tests (#163153)
epenet Feb 16, 2026
3ee20d5
Add `ppm` to `NITROGEN_DIOXIDE` units (#162983)
lboue Feb 16, 2026
27d715e
Fix incorrect use of Platform enum in zha tests (#163150)
epenet Feb 16, 2026
5f3cb37
Fix HDFury volt symbol (#163160)
glenndehaan Feb 16, 2026
6bbe80d
Fix incorrect use of Platform enum in threshold tests (#163154)
epenet Feb 16, 2026
b664f2c
Remove unused MQTT CONF_COLOR_MODE const and abbreviation (#163146)
jbouwh Feb 16, 2026
9977c58
Fix incorrect use of Platform enum in wsdot tests (#163151)
epenet Feb 16, 2026
26f852d
Fix incorrect use of Platform enum in homematicip_cloud tests (#163149)
epenet Feb 16, 2026
2d2ea3d
Cleanup unused code for Telegram bot (#163147)
hanwg Feb 16, 2026
8dc9937
Prefer explicit parametrize in litterrobot tests (#163155)
epenet Feb 16, 2026
3a0bde5
Add dependabot cooldown (#163082)
AlexSperka Feb 16, 2026
e88be6b
Fix dependabot cooldown config for github-actions ecosystem (#163166)
frenck Feb 16, 2026
c5b1b44
Fix device class for Matter Nitrogen Dioxide Sensor (#162965)
lboue Feb 16, 2026
726870b
Add py_vapid to requirements in HTML5 integration (#163165)
tr4nt0r Feb 16, 2026
1e6196c
Add zizmor as a CI check for GitHub Actions workflows (#163161)
frenck Feb 16, 2026
6e48172
Improve typing in HTML5 webpush integration (#163162)
tr4nt0r Feb 16, 2026
8a5d5a8
Fix flaky fritz update tests caused by class attribute pollution in t…
frenck Feb 16, 2026
46a1dda
Fix CI partial run glob expansion without reintroducing template inje…
frenck Feb 16, 2026
8d228b6
Add battery health sensors to Tessie (#162908)
Bre77 Feb 16, 2026
be31f01
Homevolt quality scale (#163038)
Danielhiversen Feb 16, 2026
7ab4f2f
Use HassKey in usb (#163138)
epenet Feb 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ updates:
labels:
- dependency
- github_actions
cooldown:
default-days: 7
36 changes: 20 additions & 16 deletions .github/workflows/builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,17 @@ env:

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
init:
name: Initialize build
if: github.repository_owner == 'home-assistant'
runs-on: ubuntu-latest
permissions:
contents: read
contents: read # To check out the repository
outputs:
version: ${{ steps.version.outputs.version }}
channel: ${{ steps.version.outputs.channel }}
Expand Down Expand Up @@ -88,9 +92,9 @@ jobs:
needs: init
runs-on: ${{ matrix.os }}
permissions:
contents: read
packages: write
id-token: write
contents: read # To check out the repository
packages: write # To push to GHCR
id-token: write # For cosign signing
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -270,9 +274,9 @@ jobs:
needs: ["init", "build_base"]
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write
contents: read # To check out the repository
packages: write # To push to GHCR
id-token: write # For cosign signing
strategy:
matrix:
machine:
Expand Down Expand Up @@ -372,9 +376,9 @@ jobs:
needs: ["init", "build_base"]
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write
contents: read # To check out the repository
packages: write # To push to GHCR
id-token: write # For cosign signing
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -509,8 +513,8 @@ jobs:
needs: ["init", "build_base"]
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
contents: read # To check out the repository
id-token: write # For PyPI trusted publishing
if: github.repository_owner == 'home-assistant' && needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
Expand Down Expand Up @@ -550,10 +554,10 @@ jobs:
name: Build and test hassfest image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
attestations: write
id-token: write
contents: read # To check out the repository
packages: write # To push to GHCR
attestations: write # For build provenance attestation
id-token: write # For build provenance attestation
needs: ["init"]
if: github.repository_owner == 'home-assistant'
env:
Expand Down
44 changes: 31 additions & 13 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ jobs:
name: Collect information & changes data
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: read
contents: read # To check out the repository
pull-requests: read # For paths-filter to detect changed files
outputs:
# In case of issues with the partial run, use the following line instead:
# test_full_suite: 'true'
Expand Down Expand Up @@ -169,9 +169,8 @@ jobs:

if [[ "${INTEGRATION_CHANGES}" != "[]" ]];
then
# Create a file glob for the integrations
integrations_glob=$(echo "${INTEGRATION_CHANGES}" | jq -cSr '. | join(",")')
[[ "${integrations_glob}" == *","* ]] && integrations_glob="{${integrations_glob}}"
# Create a space-separated list of integrations
integrations_glob=$(echo "${INTEGRATION_CHANGES}" | jq -r '. | join(" ")')

# Create list of testable integrations
possible_integrations=$(echo "${INTEGRATION_CHANGES}" | jq -cSr '.[]')
Expand All @@ -190,9 +189,8 @@ jobs:
# Test group count should be 1, we don't split partial tests
test_group_count=1

# Create a file glob for the integrations tests
tests_glob=$(echo "${tests}" | jq -cSr '. | join(",")')
[[ "${tests_glob}" == *","* ]] && tests_glob="{${tests_glob}}"
# Create a space-separated list of test integrations
tests_glob=$(echo "${tests}" | jq -r '. | join(" ")')

mariadb_groups="[]"
postgresql_groups="[]"
Expand Down Expand Up @@ -280,9 +278,29 @@ jobs:
- name: Run prek
uses: j178/prek-action@0bb87d7f00b0c99306c8bcb8b8beba1eb581c037 # v1.1.1
env:
PREK_SKIP: no-commit-to-branch,mypy,pylint,gen_requirements_all,hassfest,hassfest-metadata,hassfest-mypy-config
PREK_SKIP: no-commit-to-branch,mypy,pylint,gen_requirements_all,hassfest,hassfest-metadata,hassfest-mypy-config,zizmor
RUFF_OUTPUT_FORMAT: github

zizmor:
name: Check GitHub Actions workflows
runs-on: ubuntu-24.04
permissions:
contents: read # To check out the repository
needs: [info]
if: |
github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
steps:
- name: Check out code from GitHub
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Run zizmor
uses: j178/prek-action@0bb87d7f00b0c99306c8bcb8b8beba1eb581c037 # v1.1.1
with:
extra-args: --all-files zizmor

lint-hadolint:
name: Check ${{ matrix.file }}
runs-on: ubuntu-24.04
Expand Down Expand Up @@ -696,7 +714,7 @@ jobs:
run: |
. venv/bin/activate
python --version
pylint --ignore-missing-annotations=y homeassistant/components/${INTEGRATIONS_GLOB}
pylint --ignore-missing-annotations=y $(printf "homeassistant/components/%s " ${INTEGRATIONS_GLOB})

pylint-tests:
name: Check pylint on tests
Expand Down Expand Up @@ -749,7 +767,7 @@ jobs:
run: |
. venv/bin/activate
python --version
pylint tests/components/${TESTS_GLOB}
pylint $(printf "tests/components/%s " ${TESTS_GLOB})

mypy:
name: Check mypy
Expand Down Expand Up @@ -817,7 +835,7 @@ jobs:
run: |
. venv/bin/activate
python --version
mypy homeassistant/components/${INTEGRATIONS_GLOB}
mypy $(printf "homeassistant/components/%s " ${INTEGRATIONS_GLOB})

prepare-pytest-full:
name: Split tests for full run
Expand Down Expand Up @@ -1561,7 +1579,7 @@ jobs:
- pytest-mariadb
timeout-minutes: 10
permissions:
id-token: write
id-token: write # For Codecov OIDC upload
# codecov/test-results-action currently doesn't support tokenless uploads
# therefore we can't run it on forks
if: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 360
permissions:
actions: read
contents: read
security-events: write
actions: read # To read workflow information for CodeQL
contents: read # To check out the repository
security-events: write # To upload CodeQL results

steps:
- name: Check out code from GitHub
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/detect-duplicate-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@ on:

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.event.issue.number }}

jobs:
detect-duplicates:
name: Detect duplicate issues
runs-on: ubuntu-latest
permissions:
issues: write
models: read
issues: write # To comment on and label issues
models: read # For AI-based duplicate detection

steps:
- name: Check if integration label was added and extract details
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/detect-non-english-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@ on:

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.event.issue.number }}

jobs:
detect-language:
name: Detect non-English issues
runs-on: ubuntu-latest
permissions:
issues: write
models: read
issues: write # To comment on, label, and close issues
models: read # For AI-based language detection

steps:
- name: Check issue language
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,18 @@ on:

permissions: {}

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true

jobs:
lock:
name: Lock inactive threads
if: github.repository_owner == 'home-assistant'
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
issues: write # To lock issues
pull-requests: write # To lock pull requests
steps:
- uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6.0.0
with:
Expand Down
11 changes: 8 additions & 3 deletions .github/workflows/restrict-task-creation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ on:

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.event.issue.number }}

jobs:
add-no-stale:
name: Add no-stale label
runs-on: ubuntu-latest
permissions:
issues: write
issues: write # To add labels to issues
if: >-
github.event.issue.type.name == 'Task'
|| github.event.issue.type.name == 'Epic'
Expand All @@ -29,10 +33,11 @@ jobs:
});

check-authorization:
name: Check authorization
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
contents: read # To read CODEOWNERS file
issues: write # To comment on, label, and close issues
# Only run if this is a Task issue type (from the issue form)
if: github.event.issue.type.name == 'Task'
steps:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,18 @@ on:

permissions: {}

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true

jobs:
stale:
name: Mark stale issues and PRs
if: github.repository_owner == 'home-assistant'
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
issues: write # To label and close stale issues
pull-requests: write # To label and close stale PRs
steps:
# The 60 day stale policy for PRs
# Used for:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/translations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ on:

permissions: {}

concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true

env:
DEFAULT_PYTHON: "3.14.2"

Expand Down
6 changes: 6 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ repos:
- --quiet-level=2
exclude_types: [csv, json, html]
exclude: ^tests/fixtures/|homeassistant/generated/|tests/components/.*/snapshots/
- repo: https://github.com/zizmorcore/zizmor-pre-commit
rev: v1.22.0
hooks:
- id: zizmor
args:
- --pedantic
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/hdfury/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -164,10 +164,10 @@
"name": "Relay"
},
"tx0plus5": {
"name": "TX0 force +5v"
"name": "TX0 force +5V"
},
"tx1plus5": {
"name": "TX1 force +5v"
"name": "TX1 force +5V"
}
}
},
Expand Down
Loading
Loading