# 如何在 GitHub Actions 时使用 secretKey
# 问题
当我参考这篇 (opens new window),使用 Github Action
自动部署的时候发现要使用 Secret Key 去使用 VSSUE
评论功能,我就犯愁了。
直接写在 config
里虽说并没有谁会盗用(吧 😃),但显然不太安全。这是原 workflow 文件中下面这段启发了我。其他的变量难道也可以这样传到服务器上?
with:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
# 解决方法
果然 Github
早就帮我们想好了解决办法。
简单说就是在对应 repo 的 Secrets
区域里输入。
注意⚠️:上图中画圈的位置的 A
, 正确的英语语法是 AN
, 不过这篇教程统一用 A
, 和下面的
${{ secrets.THIS_IS_A_EXAMPLE }}
也得一致!
英语好的朋友别嘲讽在下 😵
再在 actions
里用
${{ secrets.YOURKEY }}
去取,通过 env
存入服务器的环境变量。就可以用啦 👻。
做个实验。main.yaml
里加上这样一段。
- name: Pass Variables
env:
EXAMPLE: ${{ secrets.THIS_IS_A_EXAMPLE }}
NOTEXIST: ${{ secrets.NOT_EXIST }}
run: echo 'try to show secret 😉' && echo $EXAMPLE && echo $NOT_EXIST
输出下图这样的结果。github 把结果加密了,不过可以发现,有设置的 THIS_IS_A_EXAMPLE
和没有设置的 NOT_EXIST
,echo
出来是不一样的。由此可见,已经设置成功了。
# 实施
直接试试吧。
- name: Build
env:
VSSUEID: ${{ secrets.VSSUEID }}
VSSUESECRET: ${{ secrets.VSSUESECRET }}
run: npm install && npm run build
在 npm run build
之前加上环境参数那一段。
vssueConfig: {
platform: 'github',
owner: 'xyyolab',
repo: 'blog',
clientId: process.env.VSSUEID,
clientSecret: process.env.VSSUESECRET
}
再在 config
内用 node 的语法去环境参数取就 OK 啦!
结果是评论功能可以使用了呀 😍。
- 完整的
main.yaml
请参考我的 Github (opens new window)
看起来一个小步骤但解决了大问题呢 💃。