我正在编写一个javascript
github动作。在我的action.yml
中,我有以下内容:
runs:
using: node12
main: ./index.js
在我的index.js
内,我正在调用需要密钥的api。我想使用自己的秘密密钥。我不希望使用我的操作来定义自己的密钥的用户。如何将我的秘密密钥作为秘密or env变量添加到文件中?
答案 0 :(得分:2)
秘密需要来自某个地方。即使您为外部api加密令牌并直接将其托管在操作的代码中,您仍然需要密码来解密它,并且该令牌必须来自操作用户的秘密条目,因为它需要托管在该操作中他们自己的存储库或组织。
如果您想加密秘密的示例,但仍需要密码,因此我们又回到了同一条船上。
gpg --symmetric --cipher-algo AES256 my_secret.json
这种情况之所以不理想,是因为据我了解,您希望对操作的所有用户使用一个令牌。因此,机密将需要以某种方式公开,因为多个用户将需要具有该令牌,因此,您可以直接在操作中托管令牌,或告诉用户通过其机密设置将其作为操作变量或环境提供给您。这是一个示例,用户以两种不同的方式共享令牌以进行操作。
steps:
- name: Hello world action
with: # Set the secret as an input
super_secret: ${{ secrets.SuperSecret }}
env: # Or as an environment variable
super_secret: ${{ secrets.SuperSecret }}