Github-Action-Day8:处理陈旧的Issues(议题)

这是我的 Github Action Advent Calendar 的第八天的内容,如果您想要了解更多已经发布的 tips 信息,查看此处的 索引

仓库中拥有一些陈旧的 issue 可能是一个很大的隐患。拥有多年还没打算解决的 issue 会让你很难找到你想要重点关注的问题。而开启的 pull requests 您却从不合并会使得您看起来好像忽视了这个项目一样。项目中所有的这些琐碎问题都增加了一种无形的感知负担。

Translate Note:

这里指的 issue 就是在仓库中 Issue 栏中的内容,pull request 同理:

image-20210824185625007

任何工作在服务业的人都能理解这个问题。它就像一个厨师的 mise en place (工作场所),也就是在他们厨房的工作台上放置配料的地方。

如果你让你的 mise en place 上面的东西弄乱了,弄得又脏又乱,你很快就会发现你自己在原地打转而且需要后援。我曾经和一个厨师一起工作,他常常在工作很忙的时候走到一个肮脏的厨师工作台的后面,向我解释为什么那个冒犯的厨师会落在后面。他将手掌按在砧板上,砧板上堆满了胡椒粒、溅上的酱汁、芹菜和面包屑、常见的漂浮物,以及如果没有定期使用湿毛巾清理就会快速在工作台积累的赃污。”你看到了吗?“ 他问道,举起他的手掌,厨师们就能看到沾在这个厨师手掌上的一点点污垢。”这就是你脑子里现在的样子。“

- 安东尼·波登,厨神

当 Github 开始创建 Action 这个工具时,他们希望构建某个优秀的处理 CI/CD 工作流的工具 — 构建(building) 一个项目,运行测试(tests) 并部属(deploying) 这个项目,也可以帮助您的项目自动化处理一些常见的任务。在这种情况下,尽可能保持您的仓库整洁以及优质。

于是,在 入门工作流starter workflows 的底部是一个解决陈旧 issues 以及 pull requests 的工作流 (workflow):

Stale Starter Workflow

Translate Note:

在仓库的 Action 栏位,最底部可以看到这个 action

这个工作流运行在一个 定时触发器 上,在以 UTC 为时区时间的每天午夜(0.00)执行。

on:
schedule:
- cron: "0 0 * * *"

当它运行时,它会运行 stale action ,这个 action 会在扫描你的仓库中的 issuespull requests ,并找出其中几个月都没有活动的条目。随之会在找出的 issue 栏中发布一条消息,并给这条 issue 添加一个标签表示这个 issue 已经过时。如果这个 issue 在下一个礼拜还是过时的(有过时的标签),该issue就会被关闭。

Stale Action

这可以确保每个过时的 issue 都被识别出来,而且也给了人们足够的时间去告诉 stale action 是否保持一个 issue 或者 pull request 开启 — 毕竟,大量的旧 issues 和 PRs 终究还是有价值的。

总而言之,stale workflow 是一种简单的方式来缓解您的仓库中一些烦恼的问题,而且允许您 “手动清理” 掉这些问题。