如何基于Github Issues与Github Actions写技术博客?
一、序言
近期发现Github Issues写博客,可以结合 Github Actions做自动化,实现一个效果是:写了一篇博客之后,按照Issues的标签分类,自动更新博客的Readme.md文件,并且自动更新Github Page站点页面。
实现原理是:
基于Github的Actions功能,通过创建Actions监听Issues的变动事件,当Issues创建、修改、关闭、标签变化等情况的时候,自动触发Github Actions,在执行Github Actions的时候,借助Python的脚本,通过PyGithub库调用Github的API接口,执行以下步骤:
- 生成词云:读取本仓库Issues的所有标签,生成一个词云的图片
- 调用接口获取所有的标签,并且遍历该标签下所有状态是Open的Issues,把Issues的名称、链接以及创建时间、评论数等信息,以markdown的格式写入 readme.md
- 使用Github Actions脚本提交变更到该Git仓库
下面是具体搭建的过程步骤:
二、操作步骤
步骤1:创建Github Token
通过个人用户的Setting目录,生成一对Github Token

选择Token的有效期(可以选择无限期),并且勾选上token的权限(我全部勾选了)

token创建之后,拷贝并保存好该Token,不要泄露了。

步骤2:将Github Token配置到Git仓库
这里的names自定义命名,后续在配置Github Actions的时候会使用到,创建以下三个变量:
-
BLOG_SECRET:配置Github Token -
GIT_EMAIL: 配置Git的Email地址 -
GIT_USERNAME:配置Git用户名
步骤3:Github创建仓库、配置Github Actions
可以直接将我的这个Blog 仓库直接Fork或者Git clone一份,仓库链接: 点击这里访问仓库
修改 .github/workflows/main.yml 文件,修改下图画圈部分
修改完成后,将仓库提交到您个人的Github仓库,其中目录结构如下(Src目录是我个人的目录,您可以删除):
三、效果
根据以上几个步骤的配置,此时,就可以在Github Issues新建文章,并且添加上文章标签,创建完成后,在Github 仓库的Actions 菜单下,就可以看到自动化构建的脚本启动执行

Github首页的效果:

Github Page的效果:点击链接访问

谢谢你的分享,收获很大!我是Github入门学习者,想请问在创建了自己的github.io库以后,Github Pages是如何同步issues里的文章呢?可以详细解释一下吗?谢谢! 🙇
谢谢你的分享,收获很大!我是Github入门学习者,想请问在创建了自己的github.io库以后,Github Pages是如何同步issues里的文章呢?可以详细解释一下吗?谢谢! 🙇
@liumy-lay 你好,步骤如下:
1、Fork本仓库,并且按照上面博文的步骤配置信息,可以实现:创建issue之后, 通过github action的脚本就会自动更新readme.md 2、开启Github Page功能,可以配置Git仓库有变动,github page就会自动部署(展示的仓库中的readme.md文件)
hi。
”将Github Token配置到Git仓库“是不是不太安全啊? 在我的Git仓库里,那不是人人都看得见我的Github Token了? 今天我还收到github的email,说我的Github Token泄露了
hi。
”将Github Token配置到Git仓库“是不是不太安全啊? 在我的Git仓库里,那不是人人都看得见我的Github Token了? 今天我还收到github的email,说我的Github Token泄露了
Token没有配置在仓库代码里,而是在仓库的setting中,别人是看不到的。
HI. 你不是说”修改 .github/workflows/main.yml 文件“吗?修改后,我登出github,然后访问我仓库的 .github/workflows/main.yml 文件,所改的地方看得一清二楚,你怎么说”别人是看不到的“? 谢谢回复
HI.
我看了你这图:
不过我的情况是: