Blog icon indicating copy to clipboard operation
Blog copied to clipboard

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

Open johnnian opened this issue 3 years ago • 6 comments

一、序言

近期发现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

1

2

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

3

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

4

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

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

  • BLOG_SECRET:配置Github Token
  • GIT_EMAIL : 配置Git的Email地址
  • GIT_USERNAME :配置Git用户名
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

johnnian avatar Nov 10 '22 13:11 johnnian

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

liumy-lay avatar Jul 16 '24 07:07 liumy-lay

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

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

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

johnnian avatar Jul 16 '24 18:07 johnnian

hi。

”将Github Token配置到Git仓库“是不是不太安全啊? 在我的Git仓库里,那不是人人都看得见我的Github Token了? 今天我还收到github的email,说我的Github Token泄露了

briteming avatar Dec 03 '24 03:12 briteming

hi。

”将Github Token配置到Git仓库“是不是不太安全啊? 在我的Git仓库里,那不是人人都看得见我的Github Token了? 今天我还收到github的email,说我的Github Token泄露了

Token没有配置在仓库代码里,而是在仓库的setting中,别人是看不到的。

johnnian avatar Dec 03 '24 04:12 johnnian

HI. 你不是说”修改 .github/workflows/main.yml 文件“吗?修改后,我登出github,然后访问我仓库的 .github/workflows/main.yml 文件,所改的地方看得一清二楚,你怎么说”别人是看不到的“? 谢谢回复

briteming avatar Dec 06 '24 15:12 briteming

HI.

我看了你这图:

Image

不过我的情况是:

Image 在Security那里,没有你图中的那些链接,怎么回事?

luckypoem avatar Nov 09 '25 21:11 luckypoem