如何通过Azure DevOps Rest API查询指定月份分支锁定次数及锁定原因
Azure DevOps指定月份分支锁定次数及历史查询方案
- 可以通过组织级审计日志接口实现需求,分支的锁定、解锁操作都会被全量记录到审计日志中,没有单独的分支锁定历史API,直接查询审计日志即可。
- 需要调用的API格式为:
GET https://auditservice.dev.azure.com/{你的组织名称}/_apis/audit/query?api-version=7.1-preview.1- 请求时需传入两个核心筛选条件:
- 时间范围:传入你需要查询的月份的起止Unix时间戳,限定返回对应时间段的操作记录
- 操作类型:筛选操作ID为
Git.RefLockUpdated的记录,这类记录对应所有分支锁定状态变更操作
- 请求时需传入两个核心筛选条件:
- 结果统计及信息提取规则:
- 匹配返回结果中
RefName字段和你要查询的目标分支完整路径,筛选出对应分支的状态变更记录 - 统计
Details字段中IsLocked属性为True的条目数量,就是指定月份内该分支的锁定总次数 - 每条锁定记录的触发相关信息均包含在返回体中:操作人账号、操作精确时间、操作备注、锁定触发来源(手动操作/策略自动触发)分别对应
ActorDisplayName、Timestamp、Comment、OperationDetails字段
- 匹配返回结果中
- 注意事项:
- 调用该接口需要账号具备组织级的「查看审核日志」权限,无权限会返回403错误
- 免费层Azure DevOps组织的审计日志仅保留90天,超出时间范围的历史记录无法查询;若需长期留存锁定记录,需要定期导出审计日志存储到自有存储服务中
- 可以用现有查询分支当前锁定状态的接口,和审计日志中最后一次
Git.RefLockUpdated操作的结果做校验,两者状态应该完全一致
内容的提问来源于stack exchange,提问作者Lin
相关产品推荐
相关产品推荐

