李寒的小窝

Recent content on

马上订阅 李寒的小窝 RSS 更新: https://lihan3238.github.io/index.xml

github仓库中的隐私信息处理

2023年10月29日 02:30
Featured image of post github仓库中的隐私信息处理

问题

在使用github仓库时,会出现有意或无意commit甚至push了包含隐私信息(密码、身份信息等)的文件。

原因

使用github action``github pages时,workflow等可能需要依赖token或密码等。 此外,即使删除了文件,但是仓库中的commit历史记录中仍然会存在,也需要进行处理。

解决方案

  1. github action secret加密隐私信息

利用github提供的github action secret功能,将token等信息保存在secret中,然后在workflow中调用secret中的信息。

  • 实际上,通过在workflow中增加临时修改文件的操作,也可以实现对所有文件中的隐私信息替换,而不仅是workflow目录下的文件中的隐私信息替换 。

以我的个人博客为例,由于个人博客中的gitalk评论区插件需要依赖github outh app,因此需要在workflow中调用github action secret中的token信息。

相关数据保存在config/_default/params.toml文件中。

1
2
3
4
5
6
7
8

...

repo = "lihan3238.github.io"
clientID = "1eda156wa"
clientSecret = "5168165"

...

注意到,文件中的隐私信息是明文保存的,任何访问者都能直接看到,很危险。 隐私信息

首先将原文替换为特定字符串

1
2
3
repo = "lihan3238.github.io"
clientID = "id"
clientSecret = "cs"

打开https://[仓库地址]/settings/secrets/actions(例如https://github.com/lihan3238/lihan3238.github.io/settings/secrets/actions) 添加secret,并将token等信息保存在secret中。

secret

然后在workflow中添加进行替换的代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
jobs:
 # Update config file job
 update_config_file...

剩余内容已隐藏

查看完整文章以阅读更多