Azure DevOps工作项管理
通过自动化脚本定时拉取 Azure DevOps 工作项,生成日报并推送到 Mattermost 和 WhatsApp。
概述
Azure DevOps 工作项管理是一个自动化的每日工作任务追踪系统。它通过 azure-devops skill 中的 Node.js 脚本(check_azure_devops.js)调用 Azure DevOps REST API,按照预设的 Query ID 查询工作项(Bug、Task、Feature),并生成结构化的工作清单报告,推送给用户。
该系统设置了 Cron 定时任务,在工作日每天早上 8:50(CST)自动运行。脚本支持两种输出模式:人类可读的 Markdown 报告和 JSON 格式的机器可读数据。报告包含工作项的标题、优先级、状态、负责人、描述,以及关联的截图(自动下载到本地)。
后来该技能的配置参数被整理并转交给了新的”实习生”Agent(Work Assistant),由其接管日常的 Azure DevOps 工作项管理任务。
关键点
- 定时自动运行: Cron 配置
50 0 * * 1-5(UTC),即 CST 每工作日 08:50 - 双模式输出: 支持
--json参数输出机器可读格式,默认输出 Markdown 报告 - 图片自动下载: 从工作项描述中提取
<img>标签的图片 URL 并下载到本地 - 推送渠道: 结果发送到 Mattermost(@dora)和 WhatsApp
- 认证方式: 使用 Personal Access Token (PAT) 进行 Azure DevOps API 认证
- 任务移交: 配置参数后来整理后转交给了 Work Assistant Agent
技术细节
Skill 配置
<skill>
<name>azure-devops</name>
<description>Fetch and display work items from Azure DevOps</description>
<usage>
node skills/azure-devops/index.js # 人类可读报告
node skills/azure-devops/index.js --json # JSON 输出
</usage>
<configuration>
- ORG (Organization name)
- PROJECT (Project name)
- PAT (Personal Access Token)
- QUERY_ID (Saved Query GUID)
</configuration>
</skill>工作项类型图标
| 类型 | 图标 |
|---|---|
| Bug | 🐛 |
| Task | ☑️ |
| Feature | 🚀 |
| Other | 🔹 |
报告字段
- ID、标题、状态、类型
- 负责人、优先级
- 创建日期、创建者
- 描述(HTML 清洗后截取 5000 字符)
- 关联图片数量和引用
时间线
- 2026-03-03 10:55: 验证 Azure DevOps 任务正常运行(连接✅,认证✅)
- 2026-03-03 10:58: 确认 Cron 定时配置为工作日 08:50 CST
- 2026-03-04 12:28: 完整脚本和 SKILL.md 代码审查
- 2026-03-06 16:27: Azure DevOps 配置参数整理并移交给 Work Assistant
相关页面
- labor-hour-tracking
- daily-systems
- multi-agent-architecture
- bnef — BNEF Bot 创建的 azure-devops skill
Prism 项目 Azure DevOps 集成
以下信息来源于 bnef 的 Mattermost DM 聊天记录(2026-03-13)。
BNEF Bot(prism-pm)为 Prism Hackathon 项目创建了 azure-devops skill,将 Azure DevOps 仓库信息持久化到 OpenClaw 技能中:
- 仓库: https://dev.azure.com/restryliu/Prism
- 认证: Personal Access Token (PAT)
- Skill 路径:
workspace/skills/azure-devops/ - 触发条件: 提到 Azure DevOps、ADO、代码仓库、Work Items、PR、Pipeline 等关键词时自动加载
与 dora-kids 记录的 Work Assistant 技能不同,这个技能是专门为 Prism 5-Bot 团队创建的,所有 Agent 共享工作区都能读取到此信息。用户的设计思路是:将关键配置存入 Skill 而非核心记忆(MEMORY.md),因为 Skill 会每次加载到上下文中不会被遗忘。
Surface WSL Bot 的 Azure DevOps 日报系统
以下信息来源于 surface-wsl-bot DM 记录(2026-03-05 ~ 2026-03-20)。
Surface WSL Bot 是 Azure DevOps 日报功能的原创实现者。它从零搭建了完整的工作项查询与日报系统:
层级追溯功能
脚本不仅查询直接工作项,还递归查询父级关系($expand=relations → System.LinkTypes.Hierarchy-Reverse),拼出完整层级链:
- Task → Product Backlog Item → Feature → Epic
- 每层显示指派人和状态
日报格式迭代
经过多次用户反馈迭代,最终固化模板:
☀️ Azure DevOps 工作汇报
📋 今日工作清单 (GSP-App) | 总计: N 个待办项
🏗️ Epic: XXX [ID] (Status)
> SIT: 日期 · UAT: 日期 · 正式: 日期
Feature: XXX [ID] | 指派人
- 📦 Backlog [ID]
- → ☑️ [ID] 标题 — Status
📊 总结: To Do: N | 距 SIT 还有 X 天
Cron 配置与故障
- 定时: 工作日 8:50(Asia/Shanghai)
- 超时问题: 递归查层级 API 调用量大,30s 超时改为 120s
- 模型: 从 gemini-3-pro-preview → claude-opus-4.6 → azure-foundry/gpt-5.4
- 投递故障: 多次出现 cron 模型超时、消息发送失败,需手动补发
工作项操作
- 批量标记 Done:通过 Azure DevOps REST API PATCH 修改状态
- 修改指派人:关闭 Bug 后指派回创建人
- Query ID 更新:从
d34e36b7...切换到5b34c347...(包含 Bug/Task/PBI/Feature)