如何使用二进制文件为Github工作流设置Github秘钥?

7

我想要将一个 API 配置文件 (binary.file) 添加到 Github 机密中 (MY_BINARY_SECRET)。然后在工作流程中再次读取并写入 binary.file

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install System
        run: |
          sudo apt-get update
          sudo apt-get install -y pip python3.8-venv libcurl4-openssl-dev

      - name: Set up configurations
        shell: bash
        run: |
          echo "${{ secrets.MY_BINARY_SECRET }}" > binary.file
          python3 .... # the python script will need binary.file to complete authentication  

然而,我尝试了很多小时,用不同的方式复制二进制内容到Github Secret中,但都失败了。我尝试了pbcopylesscat。有谁知道如何通过Github Secret在github actions中写入二进制文件,或者有更好的解决方案吗?

谢谢!


MY_BINARY_SECRET 编码为 base64,然后解码回 binary.file - phd
@phd 感谢您的回答!您能提供一个例子吗? - WenliL
1
echo "$MY_BINARY_SECRET" | base64 -w0 >secret.b64。 将文本文件secret.b64上传为GitHub的秘密。 使用echo -n "${{ secrets.MY_BINARY_SECRET }}" | base64 -d > binary.file解码它(首先尝试本地)。 - phd
它可以工作了,谢谢! - WenliL
1个回答

8

(扩展我的评论):

使用base64将二进制字符串编码为文本,并解码回二进制。这是一个相当标准的技巧。

首先,在本地进行编码:

echo "$MY_BINARY_SECRET" | base64 --wrap=0 > secret.b64

--wrap=0 参数可将输出文本合并为一行;对下面的 echo 命令很有用。

将文本文件 secret.b64 上传到 GitHub 作为密钥,并使用以下命令进行解码:

echo -n "${{ secrets.MY_BINARY_SECRET }}" | base64 --decode > binary.file

建议:首先尝试在本地解码并与原始字符串进行比较。必须相同。


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