ワンクリックで
pr-workflow
// Create pull requests for esphome/device-builder-frontend. Use when creating PRs, submitting changes, or preparing contributions.
// Create pull requests for esphome/device-builder-frontend. Use when creating PRs, submitting changes, or preparing contributions.
| name | pr-workflow |
| description | Create pull requests for esphome/device-builder-frontend. Use when creating PRs, submitting changes, or preparing contributions. |
| allowed-tools | Read, Bash, Glob, Grep |
When creating a pull request for esphome/device-builder-frontend,
follow these steps. The frontend ships prebuilt inside the
esphome/device-builder Python wheel, so backend-visible changes
(WS commands, model shapes, ConfigEntryType values) usually need
a coordinated PR there too.
origin already points at esphome/device-builder-frontend —
there is no fork in this workflow. Always re-fetch first:
git fetch origin
git checkout -b <branch-name> origin/main
Before creating a PR, read .github/PULL_REQUEST_TEMPLATE.md for
the required sections. Fill in every section — do not skip or
abbreviate. If the template's "Types of changes" list looks
narrower than the label set the workflow enforces (see step 3),
prefer the workflow's canonical list when picking a label.
.github/workflows/pr-labels.yaml uses
ludeeus/action-require-labels to require at least one of the
release-drafter labels — it does not cap the number, but
release-drafter slots a PR by its first matching label, so in
practice apply just one:
breaking-change, bugfix, refactor, new-feature,
enhancement, maintenance, ci, dependencies, docs.
Unlike the backend repo, this workflow does not auto-apply a label from a checkbox — you must pass the label explicitly when creating the PR (or apply it via the UI before CI runs):
gh pr create --label enhancement ...
Pick whichever label release-drafter would file the change under;
if in doubt, look at the headings in .github/release-drafter.yml.
If the change consumes a new WS command, event, model field, or
ConfigEntryType from esphome/device-builder, link the companion
backend PR in the description. Frontend PRs that depend on
unmerged backend changes should stay in draft until the backend
side has landed.
Co-Authored-By: Claude trailer. Project preference
(matches the backend repo).npm run lint and
npm run test locally before pushing.Always read .github/PULL_REQUEST_TEMPLATE.md from the repo at
PR-creation time and use it verbatim as the body — do not
reproduce, paraphrase, or trim the template anywhere else, or it
will silently drift out of sync as the template evolves.
When filling in the template:
<!-- ... --> prompt comments with the actual prose
for that section. Do not delete anything else.- [ ].\` corrupts inline code in the
rendered PR. The template is already valid Markdown; do not
rewrite it for shell quoting. Use --body-file, never
--body "..." with shell-escaping.git push -u origin <branch-name>
# Read .github/PULL_REQUEST_TEMPLATE.md, fill it in as above,
# write the result to a temp file, then:
gh pr create --repo esphome/device-builder-frontend --base main \
--label <release-notes-label> \
--title "Imperative subject under 70 chars" \
--body-file /tmp/pr-body.md
CI runs the test workflow and the label-verifier. If pr-labels
fails, the PR is missing one of the canonical release-drafter
labels — apply one via gh pr edit --add-label <label> rather
than pushing an empty commit.