Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
johnnian opened this issue Nov 10, 2022 · 5 comments
Open

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

johnnian opened this issue Nov 10, 2022 · 5 comments
Labels

Comments

@johnnian
Copy link
Owner

johnnian commented Nov 10, 2022

一、序言

近期发现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 johnnian pinned this issue Nov 10, 2022
@johnnian johnnian unpinned this issue Jul 12, 2024
@johnnian johnnian changed the title 使用Github Issues 与 Github Actions写技术博客 如何基于Github Issues与Github Actions写技术博客? Jul 12, 2024
@johnnian johnnian removed the Tools label Jul 12, 2024
@johnnian johnnian pinned this issue Jul 12, 2024
@johnnian johnnian unpinned this issue Jul 12, 2024
@liumy-lay
Copy link

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

@johnnian johnnian pinned this issue Jul 16, 2024
@johnnian
Copy link
Owner Author

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

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

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

@briteming
Copy link

hi。

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

@johnnian
Copy link
Owner Author

johnnian commented Dec 3, 2024

hi。

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

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

@briteming
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants