如何在Github Actions中设置密钥?

19

官方的样板代码是通过以下方式注入npm令牌:

NODE_AUTH_TOKEN: ${{secrets.npm_token}}

我该如何访问和设置这个变量?在GUI中找不到它。

如何操作?

4个回答

19
  1. 进入Github中的项目
  2. 选择Settings选项卡
  3. 点击左侧菜单中的Secrets部分
  4. 添加一个新的secret并提供名称(例如npm_token)和值。

如何添加机密


8
除了GUI界面外,现在(2020年1月)您还可以使用GitHub Actions API(尽管仍处于测试阶段),如此处所述
而且它确实包括了GitHub Actions Secrets API

Create or update an repository secret:

Creates or updates an organization secret with an encrypted value. Encrypt your secret using LibSodium.

You must authenticate using an access token with the admin:repo scope to use this endpoint.
GitHub Apps must have the secrets organization permission to use this endpoint.

PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}

Get a repository secret

Gets a single secret without revealing its encrypted value.
Anyone with write access to the repository can use this endpoint.
GitHub Apps must have the secrets permission to use this endpoint.

GET /repos/:owner/:repo/actions/secrets/:name
所以GUI不再是唯一的选择:您可以通过这个新API进行脚本编写和get/set Actions secret。

但问题是“设置机密”。 - maxisme
2
@maxisme 我同意。我已编辑答案以包括创建 secret 的步骤。 - VonC
1
谢谢@Vonc,我尝试搜索文档但放弃了。 - maxisme
但我认为这只适用于“组织”账户。 - maxisme
1
@maxisme 很好的发现,谢谢。我已经编辑了第一个API端点,使用了存储库而不是组织的端点。 - VonC
显示剩余2条评论

2

这个页面很难找到,但在官方文档中存在:创建和使用密钥(加密变量)

为了方便起见,下面是从文档中复制的内容:

密钥名称不能包含任何空格。为了确保GitHub在日志中隐藏您的密钥,请避免使用结构化数据作为密钥的值,例如JSON或编码的Git blob。

  1. 在GitHub上,导航到存储库的主页。
  2. 在存储库名称下方,点击“设置”。 repository settings button
  3. 在左侧边栏中,点击“Secrets”。
  4. 在“名称”输入框中输入密钥的名称。
  5. 输入密钥的值。
  6. 点击“添加密钥”。

上面的链接还提供了关于使用密钥的更多信息。


很遗憾,该链接已经失效了。 - Toreno96
很遗憾,该链接已经失效了。 - undefined
1
@Toreno96 谢谢你提醒!我已经更新了链接。不幸的是,GitHub似乎经常重构操作文档并移动内容,导致链接失效,但他们确实有一个不错的搜索功能来解决这个问题。 - Taylor D. Edmiston
很不幸,文档的内容和设置页面本身也稍有变化,因此您可能需要考虑更新屏幕截图和引用。 - Toreno96

1
我已经创建了一个简单的 CLI 工具,可以帮助您实现这一目标 - https://github.com/unfor19/githubsecrets
这个 CLI 工具是基于官方 API 的。您可以使用 pip 安装它,也可以使用 Docker,请阅读 README.md 获取更多信息。

Usage-Demo


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接