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

相关页面

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=relationsSystem.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)