一个 MantisBT 插件,当问题被创建、更新、关闭或重新打开时,自动发送通知到飞书(Feishu/Lark)。
- 🚀 实时通知:当问题状态发生变化时立即发送飞书通知
- 📝 多种事件支持:
- 新建问题通知
- 更新问题通知
- 关闭问题通知
- 重新打开问题通知
- 🎨 丰富的消息格式:包含项目名、问题摘要、状态、严重程度、优先级、报告人和处理人信息
- 🔗 直接链接:消息中包含指向问题的直接链接
- 📄 可选描述:可选择是否在通知中包含问题描述
- 🌐 多语言支持:支持英文和简体中文
- ⚙️ 灵活配置:通过 Web 界面轻松配置插件设置
- MantisBT 2.0 或更高版本
- PHP 7.0 或更高版本
- 飞书机器人 Webhook URL
-
下载插件
cd /path/to/mantisbt/plugins git clone https://github.com/your-repo/FeishuNotifier.git -
设置目录权限(Linux/Unix 系统)
chown -R www-data:www-data FeishuNotifier/ chmod -R 755 FeishuNotifier/
-
在 MantisBT 中安装插件
- 登录 MantisBT 管理员账户
- 进入 "管理" → "插件管理"
- 找到 "飞书通知" 插件
- 点击 "安装"
-
创建飞书群组机器人
- 在飞书中创建或选择一个群组
- 点击群设置 → 群机器人 → 添加机器人
- 选择 "自定义机器人"
- 设置机器人名称和头像
- 复制 Webhook URL
-
配置插件
- 在 MantisBT 中进入 "管理" → "管理插件"
- 点击 "飞书通知" 插件的 "配置"
- 填入飞书机器人 Webhook URL
- 启用所需的通知事件
- 保存配置
| 配置项 | 说明 | 默认值 |
|---|---|---|
| Webhook URL | 飞书机器人 Webhook 地址 | 空 |
| 启用插件 | 是否启用飞书通知功能 | 否 |
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 新建问题通知 | 当新问题被创建时发送通知 | 是 |
| 更新问题通知 | 当问题被更新时发送通知 | 是 |
| 关闭问题通知 | 当问题被关闭时发送通知 | 是 |
| 重新打开问题通知 | 当问题被重新打开时发送通知 | 是 |
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 包含问题描述 | 在通知中包含问题描述 | 否 |
| 描述最大长度 | 问题描述的最大字符数 | 500 |
通知消息包含以下信息:
- 📋 项目名和问题标题
- 🏷️ 问题摘要
- 📊 状态、严重程度、优先级
- 👥 报告人和处理人
- 🔗 查看详情的直接链接
- 📝 问题描述(可选)
-
通知未发送
- 检查插件是否已启用
- 验证 Webhook URL 是否正确
- 检查 MantisBT 错误日志
- 确认相关通知事件已启用
-
Webhook 调用失败
- 检查网络连接
- 验证飞书机器人是否正常工作
- 查看 MantisBT 错误日志中的详细错误信息
-
消息格式问题
- 确认 MantisBT 配置正确
- 检查项目、用户等基础数据
插件内置了详细的日志输出功能,可以通过查看 MantisBT 错误日志来调试问题。日志包含:
- 方法调用跟踪
- 配置项获取
- Webhook 调用状态
- HTTP 响应信息
FeishuNotifier/
├── FeishuNotifier.php # 主插件文件
├── config_defaults_inc.php # 默认配置
├── README.md # 说明文档
├── lang/
│ ├── strings_english.txt # 英文语言文件
│ └── strings_chinese_simplified.txt # 简体中文语言文件
└── pages/
├── config.php # 配置页面
└── config_update.php # 配置更新处理
FeishuNotifierPlugin- 主插件类register()- 插件注册hooks()- 定义钩子函数bug_reported()- 处理新建问题bug_updated()- 处理问题更新bug_action()- 处理状态变更动作send_notification()- 发送通知build_message()- 构建消息内容send_to_feishu()- 发送到飞书
欢迎提交 Issue 和 Pull Request 来改进这个插件。
MIT License
- 作者:hejiang ([email protected])
- ✨ 初始版本发布
- 🚀 支持基本的问题通知功能
- 📝 支持新建、更新、关闭、重新打开事件
- 🌐 支持英文和简体中文
- ⚙️ 提供 Web 配置界面