Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
9587316
Clarified MFA requirements for alexa devices (#39812)
ecspiegel Jul 2, 2025
1c6e3e0
Update rpi_camera.markdown (#39815)
ecspiegel Jul 3, 2025
0b5bfc1
Update proxmoxve.markdown (#39816)
ecspiegel Jul 3, 2025
81aca7c
Update gree.markdown (#39817)
alawadhi3000 Jul 3, 2025
47832ad
build(deps-dev): bump sorbet-runtime from 0.5.12216 to 0.5.12219 (#39…
dependabot[bot] Jul 3, 2025
4a552ec
Add API key permissions requirements to Immich docs (#39820)
frenck Jul 3, 2025
550c77f
Some textual changes to Music Assistant docs (#39814)
marcelveldt Jul 3, 2025
4c88ebd
Add mandatory field for WoL integration on example (#39813)
staticdev Jul 3, 2025
fba1515
Improve docs of Android TV Remote (#39821)
tronikos Jul 3, 2025
62b143a
Z-Wave terminology: change controller to adapter (#39805)
c0ffeeca7 Jul 3, 2025
f1b9733
Z-Wave backup: device is no longer reset during backup (#39823)
c0ffeeca7 Jul 3, 2025
6a921a8
Terminology: standardize spelling of three dots menu (#39825)
c0ffeeca7 Jul 3, 2025
9ba93c2
Update upc_connect.markdown (#39828)
essys Jul 3, 2025
fb8a74a
Add WWHA badge and devices to Nuki Matter (#39729)
abmantis Jul 3, 2025
91baa10
Upload blog on Nuki joining WWHA (#39830)
googanhiem Jul 3, 2025
f9652a0
Z-Wave backup: implement review feedback (#39827)
c0ffeeca7 Jul 3, 2025
951ed7e
Add removal-instructions in Google Assistant SDK (#39834)
tronikos Jul 3, 2025
a509e11
build(deps-dev): bump textlint from 15.1.0 to 15.1.1 (#39841)
dependabot[bot] Jul 4, 2025
2530ab3
Fix unclear wording in Nuki blog (#39843)
googanhiem Jul 4, 2025
88dc3ca
Add removal-instructions in Opower (#39838)
tronikos Jul 4, 2025
c000b40
Add removal-instructions in Google Generative AI (#39840)
tronikos Jul 4, 2025
18f7cdf
Update voice language picker (#39775)
mrdarrengriffin Jul 4, 2025
029103d
Update Rakefile (#39846)
mrdarrengriffin Jul 4, 2025
08ec7dd
2025.7.1 (#39852)
frenck Jul 4, 2025
6074136
updated docs for Telegram bot (#39528)
hanwg Jul 5, 2025
e80f61c
Fix small typo in mqtt.markdown (#39856)
A-damW Jul 5, 2025
765ea62
Wallbox Integration - Update documentation (#39844)
hesselonline Jul 5, 2025
ddebbb9
Template: fix typo (#39861)
mistic100 Jul 5, 2025
22193a4
REST: add missing documentation on 'encoding' (#39859)
tempura-san Jul 5, 2025
b8084b2
Fix error in yaml example for object selector schema (#39877)
tr4nt0r Jul 6, 2025
d383465
Fix Home connect automation example (#39885)
Diegorro98 Jul 6, 2025
6446772
Fix link to "Using Value Templates with MQTT" (#39890)
lexitus Jul 7, 2025
57bd5a0
Add missing documentation to eheimdigital for quality scale (#39878)
autinerd Jul 7, 2025
6cb62bc
build(deps-dev): bump textlint from 15.1.1 to 15.2.0 (#39896)
dependabot[bot] Jul 7, 2025
8f7496b
Add description for install issue for using swap partition on drive (…
evgeny-sureev Jul 7, 2025
31b3bad
Update todoist.markdown (#39891)
TomArm Jul 7, 2025
cfdde92
Clarify supported Reolink features (#39906)
starkillerOG Jul 7, 2025
9194b6d
Add information about removing NextDNS integration (#39914)
bieniu Jul 8, 2025
4b51d3d
build(deps): bump tilt from 2.6.0 to 2.6.1 (#39919)
dependabot[bot] Jul 8, 2025
76554b6
build(deps-dev): bump sorbet-runtime from 0.5.12219 to 0.5.12220 (#39…
dependabot[bot] Jul 8, 2025
3c0a6ea
Add back feedback form for 2025.7 release (#39922)
frenck Jul 8, 2025
0b1e75f
Sort Thermopro list (#39932)
grischard Jul 9, 2025
6d36fc6
Add info about NextDNS installation parameters (#39924)
bieniu Jul 9, 2025
fd74f85
Updated documentation for VegeHub integration (#39928)
Thulrus Jul 9, 2025
c95a9c7
Update broken link for Shelly EM (#39931)
loganrosen Jul 9, 2025
b7ee913
build(deps-dev): bump sorbet-runtime from 0.5.12220 to 0.5.12221 (#39…
dependabot[bot] Jul 9, 2025
b77ce54
build(deps-dev): bump rubocop from 1.77.0 to 1.78.0 (#39936)
dependabot[bot] Jul 9, 2025
502821d
build(deps-dev): bump ruby-lsp from 0.24.2 to 0.25.0 (#39935)
dependabot[bot] Jul 9, 2025
d631685
Add Task issue form (#39940)
frenck Jul 9, 2025
34b4840
Remove incorrect hddtemp docs (#39941)
edenhaus Jul 9, 2025
c0fa7d1
Update stream.markdown to fix #31753 (#39948)
RanTheLab Jul 10, 2025
f7e08e9
Add long-term statistics to glossary (#39954)
abmantis Jul 10, 2025
14cefb3
Consequent documentation of MQTT entity set up (#39951)
jbouwh Jul 10, 2025
8989fa5
Update links and add product names for Thermopro integration (#39956)
h3ss Jul 10, 2025
ac6bbd2
Improve footer contact text (#39962)
mrdarrengriffin Jul 10, 2025
89869f1
build(deps-dev): bump multi_json from 1.15.0 to 1.16.0 (#39966)
dependabot[bot] Jul 11, 2025
97144da
build(deps-dev): bump textlint-rule-terminology from 5.2.13 to 5.2.14…
dependabot[bot] Jul 11, 2025
74bbc71
Rearranged sentences (#39968)
cdrfun Jul 11, 2025
ee0cd4c
Wallbox integration, adding troubleshooting info (#39969)
hesselonline Jul 11, 2025
c326922
Update airthings_ble.markdown to fix grammar (#39978)
robthebold Jul 11, 2025
e6a2fc5
Update define_custom_polling.md as per #39974 (#39980)
ecspiegel Jul 11, 2025
537e3a9
Z-Wave migration: add step to check and change device name if needed …
c0ffeeca7 Jul 11, 2025
d491adf
Remove default model mention for Ollama (#39992)
balloob Jul 13, 2025
210115f
Fixed bad example and missing options for set_swing_mode (#39993)
parautenbach Jul 14, 2025
2da6d99
Improve docs quality (#39998)
tsvi Jul 14, 2025
75ee5a4
Some improvements to the AVM FRITZ!Smarthome docs (#39997)
mib1185 Jul 14, 2025
108789b
2025.7.2 (#39999)
frenck Jul 14, 2025
cb85fcb
Add documentation for WiiM integration
WiimHome Jul 17, 2025
e5e830f
Merge branch 'next' into docs/wiim
Linkplay2020 Jul 18, 2025
f54fd08
Merge branch 'next' into docs/wiim
Linkplay2020 Jul 21, 2025
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
54 changes: 54 additions & 0 deletions .github/ISSUE_TEMPLATE/task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Task
description: For staff only - Create a task
type: Task
body:
- type: markdown
attributes:
value: |
## ⚠️ RESTRICTED ACCESS

**This form is restricted to Open Home Foundation staff, authorized contributors, and integration code owners only.**

If you are a community member wanting to contribute, please:
- For bug reports: Use the [bug report form](https://github.com/home-assistant/core/issues/new?template=bug_report.yml)
- For feedback: Use the [feedback form](https://github.com/home-assistant/home-assistant.io/issues/new?template=feedback.yml)
- For feature requests: Submit to [Feature Requests](https://github.com/orgs/home-assistant/discussions)

---

### For authorized contributors

Use this form to create tasks for development work, improvements, or other actionable items that need to be tracked.
- type: textarea
id: description
attributes:
label: Description
description: |
Provide a clear and detailed description of the task that needs to be accomplished.

Be specific about what needs to be done, why it's important, and any constraints or requirements.
placeholder: |
Describe the task, including:
- What needs to be done
- Why this task is needed
- Expected outcome
- Any constraints or requirements
validations:
required: true
- type: textarea
id: additional_context
attributes:
label: Additional context
description: |
Any additional information, links, research, or context that would be helpful.

Include links to related issues, research, prototypes, roadmap opportunities etc.
placeholder: |
- Roadmap opportunity: [link]
- Epic: [link]
- Feature request: [link]
- Technical design documents: [link]
- Prototype/mockup: [link]
- Dependencies: [links]
validations:
required: false
85 changes: 85 additions & 0 deletions .github/workflows/restrict-task-creation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Restrict task creation

# yamllint disable-line rule:truthy
on:
issues:
types: [opened]

jobs:
check-authorization:
runs-on: ubuntu-latest
# Only run if this is a Task issue type (from the issue form)
if: github.event.issue.issue_type == 'Task'
steps:
- name: Check if user is authorized
uses: actions/github-script@v7
with:
script: |
const issueAuthor = context.payload.issue.user.login;

// First check if user is an organization member
try {
await github.rest.orgs.checkMembershipForUser({
org: 'home-assistant',
username: issueAuthor
});
console.log(`✅ ${issueAuthor} is an organization member`);
return; // Authorized, no need to check further
} catch (error) {
console.log(`ℹ️ ${issueAuthor} is not an organization member, checking codeowners...`);
}

// If not an org member, check if they're a codeowner
try {
// Fetch CODEOWNERS file from the repository
const { data: codeownersFile } = await github.rest.repos.getContent({
owner: context.repo.owner,
repo: context.repo.repo,
path: 'CODEOWNERS',
ref: 'dev'
});

// Decode the content (it's base64 encoded)
const codeownersContent = Buffer.from(codeownersFile.content, 'base64').toString('utf-8');

// Check if the issue author is mentioned in CODEOWNERS
// GitHub usernames in CODEOWNERS are prefixed with @
if (codeownersContent.includes(`@${issueAuthor}`)) {
console.log(`✅ ${issueAuthor} is an integration code owner`);
return; // Authorized
}
} catch (error) {
console.error('Error checking CODEOWNERS:', error);
}

// If we reach here, user is not authorized
console.log(`❌ ${issueAuthor} is not authorized to create Task issues`);

// Close the issue with a comment
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `Hi @${issueAuthor}, thank you for your contribution!\n\n` +
`Task issues are restricted to Open Home Foundation staff, authorized contributors, and integration code owners.\n\n` +
`If you would like to:\n` +
`- Report a bug: Please use the [bug report form](https://github.com/home-assistant/core/issues/new?template=bug_report.yml)\n` +
`- For feedback: Use the [feedback form](https://github.com/home-assistant/home-assistant.io/issues/new?template=feedback.yml)\n` +
`- Request a feature: Please submit to [Feature Requests](https://github.com/orgs/home-assistant/discussions)\n\n` +
`If you believe you should have access to create Task issues, please contact the maintainers.`
});

await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
state: 'closed'
});

// Add a label to indicate this was auto-closed
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: ['auto-closed']
});
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ source/_data/analytics_data.json
source/_data/blueprint_exchange_data.json
source/_data/version_data.json
source/_data/alerts_data.json
source/_data/language_scores.json
source/_stash
source/stylesheets/screen.css
source/.jekyll-cache/
Expand Down
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ group :development do
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
gem 'sassc', '2.1.0'
gem 'sass-embedded', '1.89.2'
gem 'rubocop', '1.77.0'
gem 'ruby-lsp', '0.24.2'
gem 'rubocop', '1.78.0'
gem 'ruby-lsp', '0.25.0'
gem 'rackup', '2.2.1'
end

Expand Down
14 changes: 6 additions & 8 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ GEM
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.7.0)
mercenary (0.4.0)
multi_json (1.15.0)
multi_json (1.16.0)
mustermann (3.0.3)
ruby2_keywords (~> 0.0.1)
nokogiri (1.18.8-arm64-darwin)
Expand Down Expand Up @@ -119,7 +119,7 @@ GEM
regexp_parser (2.10.0)
rexml (3.4.1)
rouge (4.5.2)
rubocop (1.77.0)
rubocop (1.78.0)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
Expand All @@ -133,11 +133,10 @@ GEM
rubocop-ast (1.45.1)
parser (>= 3.3.7.2)
prism (~> 1.4)
ruby-lsp (0.24.2)
ruby-lsp (0.25.0)
language_server-protocol (~> 3.17.0)
prism (>= 1.2, < 2.0)
rbs (>= 3, < 5)
sorbet-runtime (>= 0.5.10782)
ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
Expand All @@ -159,11 +158,10 @@ GEM
rack-protection (= 4.1.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sorbet-runtime (0.5.12216)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
tilt (2.6.0)
tilt (2.6.1)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2025.2)
Expand All @@ -185,8 +183,8 @@ DEPENDENCIES
nokogiri (= 1.18.8)
rackup (= 2.2.1)
rake (= 13.3.0)
rubocop (= 1.77.0)
ruby-lsp (= 0.24.2)
rubocop (= 1.78.0)
ruby-lsp (= 0.25.0)
sass-embedded (= 1.89.2)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
Expand Down
14 changes: 14 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ task :generate do
abort("Generating alerts data failed") unless success
success = system "rake version_data"
abort("Generating version data failed") unless success
success = system "rake language_scores_data"
abort("Generating language scores data failed") unless success
success = system "jekyll build"
abort("Generating site failed") unless success
if ENV["CONTEXT"] != 'production'
Expand Down Expand Up @@ -67,6 +69,7 @@ task :preview, :listen do |t, args|
system "compass compile --css-dir #{source_dir}/stylesheets" unless File.exist?("#{source_dir}/stylesheets/screen.css")
system "rake analytics_data"
system "rake version_data"
system "rake language_scores_data"
system "rake alerts_data"
jekyllPid = Process.spawn({"OCTOPRESS_ENV"=>"preview"}, "jekyll build -t --watch --incremental")
compassPid = Process.spawn("compass watch")
Expand Down Expand Up @@ -113,3 +116,14 @@ task :version_data do
file.write(JSON.generate(remote_data))
end
end

desc "Download supported language data from ohf-voice.github.io"
task :language_scores_data do
uri = URI('https://ohf-voice.github.io/intents/language_scores.json')

remote_data = JSON.parse(Net::HTTP.get(uri))

File.open("#{source_dir}/_data/language_scores.json", "w") do |file|
file.write(JSON.generate(remote_data))
end
end
4 changes: 2 additions & 2 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ social:
# Home Assistant release details
current_major_version: 2025
current_minor_version: 7
current_patch_version: 0
date_released: 2025-07-02
current_patch_version: 2
date_released: 2025-07-14

# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
Expand Down
Loading