๐ค GitHub Automations Overview
November 26, 2025 ยท View on GitHub
This document describes all automated workflows in this repository to help maintain code quality, streamline contributions, and reduce manual work.
๐ Active Automations
1. ๐ท๏ธ Auto Label (auto-label.yml)
Triggers: When labels are added to issues/PRs
What it does:
- โ
Automatically adds
needs testingwhenreleased on @devis added - โ
Automatically removes
needs testingwhenreleasedis added
Why: Ensures proper testing workflow without manual label management.
2. ๐ฏ Auto Assign Area Labels (auto-assign-area-labels.yml)
Triggers: Issues opened/edited, PRs opened/edited/synchronized
What it does:
- Analyzes PR file changes or issue content
- Automatically adds relevant area labels:
area: sensors- Changes to sensor filesarea: coordinator- Changes to coordinatorarea: config flow- Changes to config/options flowarea: services- Changes to servicesdocumentation- Documentation or translation changes
Why: Saves maintainers time organizing issues and makes filtering easier.
3. ๐ซ Check PR Target Branch (check-pr-target-branch.yml)
Triggers: PRs targeting main branch
What it does:
- โ
Detects PRs incorrectly targeting
maininstead ofdev - โ Posts helpful comment explaining the branching strategy
- โ
Adds
needs informationlabel - โ Fails the check to prevent accidental merges
Why: Enforces branching strategy (dev โ main) and prevents production issues.
4. ๐ PR Size Labeler (pr-size-labeler.yml)
Triggers: PRs opened/synchronized
What it does:
- Calculates lines changed (additions + deletions)
- Adds size labels:
- ๐น
size:XS- < 10 lines - ๐ธ
size:S- 10-29 lines - ๐
size:M- 30-99 lines - ๐ก
size:L- 100-499 lines - ๐ด
size:XL- 500-999 lines - ๐ด๐ด
size:XXL- 1000+ lines
- ๐น
- Comments on large PRs (500+ lines) with tips
Why: Helps reviewers prioritize and provides feedback on PR size.
5. ๐ Auto Link Issues in PR (auto-link-issues.yml)
Triggers: PRs opened/edited
What it does:
- Checks if PR description links to an issue using keywords:
Fixes #123,Closes #123,Resolves #123
- Posts reminder comment if no issue is linked
- Provides guidance on how to link issues
Why: Ensures traceability and automatically closes issues when PRs merge.
6. ๐ Conventional Commit Checker (check-conventional-commits.yml)
Triggers: PRs opened/edited
What it does:
- โ Validates PR title follows Conventional Commits format
- โ Posts helpful comment with examples if format is wrong
- โ Fails check if format doesn't match
- Accepts:
feat,fix,docs,style,refactor,perf,test,chore,ci,build
Why: Enables automatic versioning and changelog generation.
7. ๐ Welcome New Contributors (welcome.yml)
Triggers: First-time issue or PR from a user
What it does:
- Welcomes new contributors with friendly message
- Provides links to contributing guide
- Explains what happens next
- Offers help and encouragement
Why: Makes new contributors feel welcome and guides them through the process.
8. ๐งน Stale Good First Issues (stale-good-first-issues.yml)
Triggers: Daily at 00:00 UTC
What it does:
- Finds
good first issuelabels with no activity for 60 days - Marks as
staleand comments - Closes after 7 more days of inactivity
- Exempts:
In Progress,priority: high,priority: critical
Why: Keeps issue list fresh and relevant for new contributors.
9. ๐งช Validate (validate.yml)
Triggers: Manual, workflow call
What it does:
- Runs Home Assistant's
hassfestvalidation - Runs HACS validation
- Ensures integration meets HA standards
Why: Catches integration issues early before release.
10. ๐ Update Contributors (update-contributors.yml)
Triggers: Push to main branch
What it does:
- Automatically updates contributor list in README
- Uses contrib.rocks for visual contributor display
- No manual maintenance needed
Why: Recognizes all contributors automatically.
11. ๐ Semantic Release (semantic_release.yml)
Triggers: Push to main/master branch
What it does:
- Analyzes conventional commit messages
- Automatically determines version bump
- Generates changelog
- Creates GitHub release
- Publishes assets
Why: Fully automated release process based on commits.
12. ๐งช PR Tests (pr_tests.yml)
Triggers: Pull requests
What it does:
- Runs test suite
- Checks code coverage
- Validates code quality
- Reports results
Why: Ensures code quality before merge.
13. ๐จ Lint (lint.yml)
Triggers: Pull requests, pushes
What it does:
- Runs ruff/pylint checks
- Validates Python code style
- Checks formatting
Why: Maintains consistent code style.
14. ๐ Celebrate First Contribution (celebrate-first-contribution.yml)
Triggers: When a PR is merged
What it does:
- โ Detects if this is the author's first merged PR
- โ Posts celebratory comment congratulating the contributor
- โ
Adds
first contribution ๐label to the PR - โ Encourages further contributions
Why: Makes contributors feel valued and celebrates their achievement.
15. โจ Enhance Changelog with First Contributors (enhance-changelog-contributors.yml)
Triggers: When a release is published
What it does:
- โ Identifies first-time contributors in the release
- โ Adds "๐โจ First contribution!" badge to their entries
- โ Creates a special "New Contributors" section in release notes
- โ Lists and thanks all first-time contributors
Why: Publicly recognizes new contributors and encourages community growth.
Example output in changelog:
* **sensors:** add new temperature sensor (@newcontributor) ๐โจ First contribution!
## ๐ New Contributors
Welcome to our amazing new contributors! Thank you for making your first contribution!
@newcontributor, @anotheruser
๐ฏ Benefits
For Maintainers
- โฑ๏ธ Saves Time: Automatic labeling, size checking, and validation
- ๐ฏ Better Organization: Area labels applied automatically
- ๐ก๏ธ Prevents Mistakes: Branch checks, commit format validation
- ๐ Better Insights: Size labels, automatic linking
For Contributors
- ๐ Welcoming: Friendly messages for first-timers
- ๐ Recognition: First contributions are celebrated publicly
- ๐ Guidance: Helpful comments explain what's needed
- โ Clear Expectations: Automatic checks show what needs fixing
- ๐ Faster Reviews: Well-organized PRs get reviewed faster
- ๐ Visibility: Contributors featured in changelogs and README
For the Project
- ๐ Better Quality: Automated testing and validation
- ๐ Clean History: Conventional commits enable automatic changelogs
- ๐ฏ Issue Management: Stale issues cleaned, good first issues fresh
- ๐ค Community Growth: Welcoming automation encourages contributions
๐ง Maintenance
Updating Workflows
All workflows are in .github/workflows/. To modify:
- Edit the YAML file
- Test changes on a fork first
- Submit PR with changes
- Document changes in this file
Adding New Automations
Consider these questions:
- Does it save manual work?
- Does it improve contributor experience?
- Does it maintain code quality?
- Is it well-documented?
Monitoring
- Check Actions tab for failed workflows
- Review workflow logs for issues
- Update as GitHub Actions features evolve
๐ Resources
๐ First Contribution Workflow
Here's how we celebrate new contributors:
- New contributor submits PR โ Welcomed by automation
- PR gets merged โ ๐ Celebratory comment posted
first contribution ๐label added โ Easy to track- Release is created โ Changelog enhanced with badges
- Release notes published โ First-timers get special section
- README updated โ Contributor appears in contributor list
Example celebration comment:
๐๐ CONGRATULATIONS @username! ๐๐
This is your FIRST MERGED CONTRIBUTION to the Spoolman Home Assistant Integration!
You're now officially part of our contributor community! ๐
๐ก Ideas for Future Automations
Want to add more? Consider:
- ๐๏ธ Auto-assign reviewers based on file changes
- ๐ Generate monthly contributor reports
- ๐ Recognize top contributors with milestone badges
- ๐ Auto-detect security vulnerabilities
- ๐ธ Auto-generate screenshots for UI changes
- ๐ Auto-update translations via Crowdin
- ๐ Birthday messages for repository anniversary
Last Updated: November 26, 2025