355 字
2 分钟
我是如何摸鱼的
可能是我之前 star 过几个 GitHub Profile 项目,现在我 GitHub 首页右侧推荐总是时不时有类似的 Repo 出现。
有一类 Profile 比较特殊,它们有社区互动模块,比如:
受之启发,我也花 mo 了 yu 半天时间撸了一个五子棋游戏放在我的 Profile 中。现在棋盘只有 9×9,高手对决可能无法分胜负,但已经留了空间能灵活改变。
简单说下这些带互动部分的 Profile 的实现原理吧。其实都是依靠强大的 GitHub Actions。
用户点击棋盘上的空白,提交一个 issue,包含预设的标题、内容和 label,这些信息全都能放在一个 URL 里,非常方便。
Issue 提交后,会触发一个 GitHub Action,运行脚本,读取 Issue 的标题,取出要进行的动作,改变棋盘。这个 action 的触发器是这样的:
on: issues: types: [opened] jobs: move: runs-on: ubuntu-latest if: startsWith(github.event.issue.title, 'gomoku|')
将此动作的元数据和游戏统计信息写到 Repo 中,重新生成 README,提交、push。Push 信息中带上
Close #<issue_num>
把 Issue 关掉。
总得来说 GitHub Actions 还是挺好玩的,自从这个功能开放以来,各种骚操作层出不穷。特别是 Travis CI 开始掉链子,大家纷纷转向 GitHub Actions。怎样,来我主页下个棋吧?