如何在 github 操作中将 github 机密内容保存到文件中

问题描述 投票:0回答:3

我正在尝试执行以下操作:

echo ${{secrets.key}} > myfile

但不幸的是,这不起作用,因为当我检查时,我的文件将是空的。 如何将 github Secret 的内容保存到文件中?

github github-actions
3个回答
11
投票

您可以首先将秘密传递给环境变量,然后将其回显到文件,记住引用环境变量以防止换行破坏命令。

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: print secrets
      env:
        MY_SECRET: ${{secrets.KEY}}
      shell: bash
      run: |
          echo "$MY_SECRET" >> config.ini
          cat config.ini

0
投票

在执行上述操作之前,请检查

secrets.key
是否确实存在。


0
投票

您可以将 github 操作秘密写入如下文件中:

- name: write config files
  run: |
      printf '%s' '${{ secrets.mysecret }}' > some.conf
      printf '%s' '${{ secrets.foo }}' > more.conf

这不会将您的秘密泄露到日志文件中,因为 github 操作在记录时会自动编辑每个秘密(带有 3 个星号)。

无需首先将您的秘密放入环境变量中。

请注意,使用

printf
优于
echo
,因为这样您就不会意外地将选项注入到 echo 中。

另请注意,秘密被显式引用,以便秘密中的空格(包括换行符)正确地出现在结果文件中。


当然,如果您的秘密包含单引号,那么您需要采取一些不同的方法,例如base64 对你的秘密或类似的东西进行编码。

© www.soinside.com 2019 - 2024. All rights reserved.