2021年22周:
Github Project Board 统计
践行过敏捷实践的团队都用过白板吧,使用最多的有 Trello,Jira,最近 Github 也出了个 Project,由于和 Github 的血亲关系,很多团队开始转向 Github Project。
Github Project 基本还原了 Trello 的主要功能,但是缺乏丰富的插件,目前还没有看到 Github 开放接口来支持插件。没有插件的 Board 没有统计功能,甚至一个迭代做了多少张卡都需要自己数一数。
苦于此,第一时间能想到的是 Github API,尝试了一番,能很容易拿到 MovedColumnsInProjectEvent
。当卡片移动时,移动的信息将记录在卡中。但是看不出来是从那个 column 移动到那个 column。最终在文档发现,projectColumnName
信息在 preview API 中才会出现。preview API 需要在 headers 里面添加
Accept: application/vnd.github.starfox-preview+json
注:Preview API 不稳定,可能随时被删除。
GraphQL Client 中的文档并不全,可见在使用 API 时,还是要以官方文档为主。GraphQL 查询脚本如下所示:
{
repository(owner: "zddhub", name: "gpkit") {
milestones(first: 20) {
nodes {
title
issues(last: 100, states: CLOSED) {
nodes {
title
url
timelineItems(itemTypes: [MOVED_COLUMNS_IN_PROJECT_EVENT, ADDED_TO_PROJECT_EVENT], first: 100) {
nodes {
__typename
... on MovedColumnsInProjectEvent {
createdAt
projectColumnName
}
... on AddedToProjectEvent {
createdAt
projectColumnName
}
}
}
}
}
}
}
}
}
注意这里使用 Milestone 来跟踪项目的进度,对没有使用 Milestone 的项目,也可以直接查 issues 获得类似结果。
搞清楚了 API,剩下的就简单了,顺便学习了一下 deno
, 一个小的统计功能就生成了,目前支持两个指标:
- Cycle Time:卡从开始做(Doing)到完成(Done)所用的时间。
- Lead Time: 代码提交到部署上生产所用的时间。
统计的准确性需要卡片正确的拖动来配合,源码在这里,欢迎参考使用。
如果你喜欢这篇文章,欢迎赞赏作者以示鼓励