Thank you for your interest in contributing to HTTP Agent! We welcome contributions from the community.
If you find a bug, please create an issue on GitHub with the following information:
- Description: A clear description of the bug
- Steps to Reproduce: Detailed steps to reproduce the issue
- Expected Behavior: What you expected to happen
- Actual Behavior: What actually happened
- Environment:
- Home Assistant version
- HTTP Agent version
- Browser (if UI-related)
- Logs: Relevant error messages or logs from Home Assistant
We welcome feature requests! Please create an issue with:
- Description: A clear description of the enhancement
- Use Case: Why this feature would be useful
- Proposed Solution: If you have ideas on how to implement it
We actively welcome pull requests!
- Check existing issues and PRs to avoid duplicates
- For major changes, please open an issue first to discuss
- Fork the repository and create a branch from
main
- Code Style: Follow PEP 8 guidelines
- Formatting: Use
blackfor code formatting:black custom_components/
- Import Sorting: Use
isortfor import organization:isort custom_components/
- Linting: Run
flake8to check for issues:flake8 custom_components/ --count --select=E9,F63,F7,F82 --show-source --statistics
Before submitting a PR, ensure:
-
Code Quality Checks Pass:
black --check custom_components/ isort --check-only custom_components/ flake8 custom_components/ --count --select=E9,F63,F7,F82 --show-source --statistics
-
Python Syntax Validation:
python -m py_compile custom_components/http_agent/*.py -
API Tests Pass:
python3 test_api.py
-
Integration Works: Test in Home Assistant using the Docker environment
If adding or modifying translations:
- Always update
custom_components/http_agent/strings.jsonfirst - Update all language files in
custom_components/http_agent/translations/:en.json(English)sv.json(Swedish)da.json(Danish)de.json(German)fi.json(Finnish)no.json(Norwegian)
- Ensure all files maintain the same key structure (203 keys)
- Validate JSON syntax:
python3 -m json.tool custom_components/http_agent/translations/LANGUAGE.json
- Use clear, descriptive commit messages
- Start with a verb in present tense (e.g., "Add", "Fix", "Update")
- Reference issue numbers when applicable
Example:
Add support for custom authentication headers (#123)
- Add new config flow step for auth configuration
- Update coordinator to handle auth headers
- Add tests for authentication
- Update documentation if needed
- Update CHANGELOG.md with your changes
- Ensure all CI checks pass
- Request review from maintainers
- Address any feedback
- Update README.md if you change functionality
- Add code comments for complex logic
- Update configuration examples if needed
We are committed to providing a welcoming and inclusive environment for everyone.
Examples of behavior that contributes to a positive environment:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards others
Examples of unacceptable behavior:
- Harassment or discriminatory language
- Trolling or insulting comments
- Personal or political attacks
- Publishing others' private information
- Other conduct which could reasonably be considered inappropriate
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainers. All complaints will be reviewed and investigated promptly and fairly.
If you have questions, feel free to:
- Open an issue for discussion
- Check existing documentation
- Review closed issues and PRs
By contributing, you agree that your contributions will be licensed under the same license as the project (see LICENSE file).
Thank you for contributing to HTTP Agent! 🎉