All changes must be made via a pull request. Direct commits to master are not allowed.
This applies to everyone — including automated tools and maintainers.
This repository uses GitHub Copilot (coding agent) to implement changes:
- A Copilot task is started with a description of the desired change.
- Copilot creates a new branch and opens a pull request targeting
master. - The PR is reviewed and merged — never pushed directly.
This repository uses squash merges only. When a PR is merged, GitHub creates a single commit on master using the PR title as the commit message.
PR titles can be anything descriptive. No special format is required.
Releases are automated. No manual tagging or version bumping needed.
- Merge PRs to
masteras normal. Every merged PR is automatically included in the next release. - After each merge, the
release.ymlworkflow creates or updates a release PR that bumps the patch version and lists all PRs merged since the last release. - When ready to ship, merge the release PR. The workflow then creates a git tag, publishes a GitHub release, and uploads the HACS ZIP.
The master branch has branch protection enabled:
- Pull requests are required before merging.
- Direct pushes to
masterare blocked.
You can still run and test locally:
# Install dependencies
pip install -r requirements-test.txt
# Run tests
pytest --cov=custom_components.pettracer --cov-report=term -v
# Lint
ruff check custom_components/pettracer/Do your work on a feature branch and open a PR — or use a Copilot task to do it for you.