tags: 飞书机器人 SonarQube 圈复杂度 Bash自动化 DevOps
Bash 双模式解析 + 飞书机器人:圈复杂度报告 45 min→30 s 实战
场景痛点
- 每日 10+ 项目 HTML 报告分散存放
- 人工逐一点开检查平均 45 min,失败响应延迟 6-8 h
- 多地研发团队无法第一时间感知质量门禁失败
解决思路
- 双模式正则:同时兼容 Sonar 6.x/7.x/8.x 三种 HTML 结构
- 富文本 @卡片:Markdown 语法 +
<at id="all">实现全员提醒 - 轻量化部署:单 Bash 脚本,零依赖,直接放到 Jenkins 定时触发
关键代码片段
bash
# 解析状态
status=$(grep -Eo '通过|失败|class="status-box' ${html} | head -1)
# 飞书卡片
curl -X POST https://open.feishu.cn/open-apis/bot/v2/hook/${key} \
-H 'Content-Type: application/json' \
-d "$(jq -n --arg msg "**$project** 圈复杂度 $status" \
'{msg_type:"interactive",card:{header:{title:{tag:"plain_text",content:$msg}}}}')"