Repository navigation
Add a Marketplace view to the brands integration - #185001
Merged
Merged
Conversation
Contributor
|
Hey there @home-assistant/core, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
5 of 12 tasks
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The conditional test assertion skips body verification for one case and conflicts with the repository’s testing convention.
1 open finding
What changed in this PR
Adds a Marketplace-specific brands API that resolves installed custom branding, repository assets, Marketplace CDN assets, then placeholders.
Changes:
- Registers and implements the authenticated Marketplace brands view.
- Adds coverage for resolution priority, caching, failures, validation, and authentication.
| File | Description |
|---|---|
homeassistant/components/brands/__init__.py |
Adds the Marketplace image endpoint and fallback chain. |
tests/components/brands/test_init.py |
Tests Marketplace image serving and caching behavior. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
frenck
marked this pull request as ready for review
October 8, 2026 19:17
balloob
approved these changes
Oct 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Breaking change
Proposed change
The Marketplace shows integrations before they are installed. Custom integrations ship their brand images in a
brandfolder of their own nowadays, and the brands integration only serves that folder once the integration is installed. So in the Marketplace, most of them show the placeholder.This adds a view for the Marketplace,
/api/brands/marketplace/<domain>/<image>. It looks in the same places as the integration view, plus one:brandfolder of the integration, when it is installed.brands.home-assistant.io/marketplace/<domain>/<image>, which serves the brand folder of Marketplace integrations that are not installed yet (Serve Marketplace icons from the brand folder of custom integrations brands#11283).It reuses the existing building blocks, including the disk cache, so the browser only talks to Home Assistant. A 404 from the new path is cached like everywhere else in this integration; a 503 (the service does not know yet) is not.
This needs home-assistant/brands#11283 to be live before it ships. Without it, the new path answers 404, and those get cached for 30 days.
Type of change
Additional information
Checklist
ruff format homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all.To help with the load of incoming pull requests: