Healthchecks项目开发指南:从代码规范到集成开发
项目概述
Healthchecks是一个用于监控定时任务和后台作业运行状态的工具,它通过定期接收"心跳"信号来判断服务是否正常运行。当预期的心跳没有按时到达时,系统会发送警报通知相关人员。
代码贡献规范
开发前沟通
对于任何非小型bug修复的贡献,建议开发者先与项目维护者进行讨论。这样可以避免开发完成后出现设计方案不被采纳的情况。项目维护者更倾向于在开发前就功能设计达成共识,而不是在代码完成后进行重大修改。
代码风格要求
-
代码格式化工具:项目使用ruff作为Python代码格式化工具,所有提交的代码必须符合ruff的格式规范。
-
代码设计原则:
- 优先选择简单直接的实现方式
- 避免过度设计或过于复杂的解决方案
- 保持代码可读性和可维护性
-
测试要求:
- 修复bug时必须添加相应的测试用例
- 新增功能时必须包含功能测试
- 提交前必须确保所有测试通过
文档编写指南
项目文档采用Markdown格式编写,并可通过管理命令转换为HTML:
- 在
templates/docs
目录下创建新的Markdown文件 - 运行
./manage.py render_docs
命令生成HTML版本 - 在
/templates/front/docs_single.html
中添加新文档的导航链接
集成开发指南
集成开发流程
在开始开发新集成前,必须先在issue中讨论并获得认可。项目维护者会根据以下标准评估是否接受新集成:
- 用户需求:是否有大量终端用户(特别是付费或潜在付费用户)的需求
- 开发乐趣:该集成是否有趣味性
- 服务友好度:目标服务是否提供开放且文档完善的API,能否避免销售联系和付费订阅
- 功能价值:该集成是否能实现通过webhook或邮件难以实现的功能
集成开发步骤
-
选择参考集成:从现有集成中选择一个相似的作为开发模板
-
核心文件修改:
- 在
/hc/api/transports.py
中添加新的传输类 - 在
/hc/api/models.py
中更新CHANNEL_KINDS
和Channel.transport()
- 在
/templates/integrations/
中添加通知模板
- 在
-
测试开发:
- 在
/hc/api/tests/test_notify_<kind>.py
中为传输类编写测试 - 在
/hc/font/tests/test_add_<kind>.py
中为视图编写测试
- 在
-
前端开发:
- 在
/hc/front/views.py
中创建配置视图 - 在
/templates/front/add_<kind>.py
中创建HTML模板 - 在
/static/img/integrations/
中添加相关图片资源 - 在
/hc/front/urls.py
中添加路由
- 在
-
界面集成:
- 更新
/templates/front/channels.html
中的集成列表 - 更新
/templates/front/event_summary.html
中的通知显示 - 添加集成logo到
/static/img/integrations/
- 更新
特别注意事项
项目不接受任何AI生成或修改的内容提交,包括但不限于:
- AI生成的pull request
- AI辅助编写的issue
- AI改写或生成的邮件
所有AI相关提交将被直接关闭或标记为垃圾信息,不做进一步讨论。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考