johnnian / Blog

MyBlog
Mozilla Public License 2.0
208 stars 59 forks source link

如何基于Github Issues与Github Actions写技术博客? #74

Open johnnian opened 2 years ago

johnnian commented 2 years ago

一、序言

近期发现Github Issues写博客,可以结合 Github Actions做自动化,实现一个效果是:写了一篇博客之后,按照Issues的标签分类,自动更新博客的Readme.md文件,并且自动更新Github Page站点页面。

实现原理是

基于Github的Actions功能,通过创建Actions监听Issues的变动事件,当Issues创建、修改、关闭、标签变化等情况的时候,自动触发Github Actions,在执行Github Actions的时候,借助Python的脚本,通过PyGithub库调用Github的API接口,执行以下步骤:

下面是具体搭建的过程步骤:

二、操作步骤

步骤1:创建Github Token

通过个人用户的Setting目录,生成一对Github Token

1

2

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

3

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

4

步骤2:将Github Token配置到Git仓库

这里的names自定义命名,后续在配置Github Actions的时候会使用到,创建以下三个变量:

image

步骤3:Github创建仓库、配置Github Actions

可以直接将我的这个Blog 仓库直接Fork或者Git clone一份,仓库链接: 点击这里访问仓库

修改 .github/workflows/main.yml 文件,修改下图画圈部分

image

修改完成后,将仓库提交到您个人的Github仓库,其中目录结构如下(Src目录是我个人的目录,您可以删除):

14

三、效果

根据以上几个步骤的配置,此时,就可以在Github Issues新建文章,并且添加上文章标签,创建完成后,在Github 仓库的Actions 菜单下,就可以看到自动化构建的脚本启动执行

10

Github首页的效果:

13

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

14

liumy-lay commented 4 months ago

谢谢你的分享,收获很大!我是Github入门学习者,想请问在创建了自己的github.io库以后,Github Pages是如何同步issues里的文章呢?可以详细解释一下吗?谢谢! 🙇

johnnian commented 4 months ago

谢谢你的分享,收获很大!我是Github入门学习者,想请问在创建了自己的github.io库以后,Github Pages是如何同步issues里的文章呢?可以详细解释一下吗?谢谢! 🙇

@liumy-lay 你好,步骤如下:

1、Fork本仓库,并且按照上面博文的步骤配置信息,可以实现:创建issue之后, 通过github action的脚本就会自动更新readme.md 2、开启Github Page功能,可以配置Git仓库有变动,github page就会自动部署(展示的仓库中的readme.md文件)