将GItHub工作流程中的秘密用于私有存储库

时间:2020-08-24 19:54:31

标签: github environment-variables

我正在尝试将GitHub工作流程用于秘密。我的设置是:

  • 免费计划
  • 私人组织
  • 私人回购
  • 组织范围内的秘密

enter image description here

问题在于,当我这样使用机密时,机密会评估为空字符串:

echo ${{ secrets.CI_TOKEN }}

有趣的是,工作流代码本身似乎非常合法,因为当我在回购范围中覆盖秘密时,它便开始将秘密计算为***

enter image description here

然后,我注意到了该问题的可能原因。组织秘密UI有点矛盾。首先,它说我不能在免费计划中将秘密用于私人回购协议,但是我可以选择第三个选项,然后手动选择该私人回购协议。

enter image description here

enter image description here

所以我想知道,当您手动选择存储库时,免费计划是否真的支持私有组织的存储库中的秘密?

2 个答案:

答案 0 :(得分:1)

所以我想知道,无论您是否手动选择秘密,这些秘密都应该起作用吗?

对于私有存储库,需要明确选择它们。

documentation还提到:

除了GITHUB_TOKEN之外,从派生的存储库触发工作流时,不会将秘密传递给运行程序。

使用以下方法对其进行测试:

steps:
  - shell: bash
    env:
      SUPER_SECRET: ${{ secrets.SuperSecret }}
    run: |
      example-command "$SUPER_SECRET"

答案 1 :(得分:1)

我在回购秘密页面上偶然发现了一些信息:

enter image description here

事实证明,手动为组织机密选择私有存储库只是一个破碎且令人误解的UI。您可以选择那些私人仓库,但这将行不通。

我认为应该重新设计该用户界面,以将私有存储库从该列表中排除。