标签: github-secret

如何将机密连接到 GitHub 上的工作流程操作中?

我想将多个秘密连接到 GitHub 上的工作流程操作中。

我想到的示例是创建从文件夹到文件名的完整路径。

github github-actions github-secret

21
推荐指数
1
解决办法
2万
查看次数

如何将所有 GitHub 机密放入环境变量中以供操作访问(在我的例子中是 powershell)?

我读过一些类似的帖子,但似乎没有人回答这个问题。如果我知道秘密的名称,我可以将单个 GitHub 秘密设置到环境变量中: env: PW_ID0007: "${{secrets.PW_ID0007}}" 如何在不知道秘密名称的情况下将所有秘密公开为环境变量(或者批量或以某种方式迭代它们并单独设置它们?)

github environment-variables github-actions github-secret

16
推荐指数
3
解决办法
1万
查看次数

如何将秘密从 GitHub Actions 传递到 python 环境变量?

pytest在 GitHub Actions 中运行,我必须传递一些secretsPython 运行环境。例如,

  - name: Test env vars for python
    run: python -c 'import os;print(os.environ)'
    env:
      TEST_ENV: 'hello world'
      TEST_SECRET: ${{ secrets.MY_TOKEN }}
Run Code Online (Sandbox Code Playgroud)

但是,输出如下:

environ({
'TEST_ENV': 'hello world',
'TEST_SECRET':'',
...})
Run Code Online (Sandbox Code Playgroud)

由于GitHub 的修订,它似乎不起作用。

根据 @raspiduino 的回答,我对导入环境变量的两个选项进行了更多探索。

name: python

on: push

jobs:
  test_env:
    runs-on: ubuntu-latest
    steps:
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: 3.8
        
    - name: Test env vars for python
      run: python -c 'import os;print(os.environ)'
      env:
        ENV_SECRET: ${{ secrets.ENV_SECRET }} 
        REPO_SECRET: ${{ …
Run Code Online (Sandbox Code Playgroud)

python environment-variables github-actions github-secret

6
推荐指数
1
解决办法
1万
查看次数

如何让 GitHub Actions 安全地访问从分叉创建的 PR 的 Secrets?

我有一个运行端到端测试的公共存储库。这些测试需要存储在 GitHub 中的机密。

相应的工作流程yaml文件有如下pull_request条目:

on:
  pull_request:
  ....
Run Code Online (Sandbox Code Playgroud)

问题:如果我(所有者)自己创建拉取请求,工作流程将正确运行并访问机密。如果有人从分叉创建 PR,GitHub 会要求我批准运行,但是一旦我批准,工作流程将看不到这些秘密的值,并且测试将失败。

如果我更改pull_requestpull_request_target,它将正确访问秘密。然而,这样,在运行工作流程之前它不会征求我的批准(因此秘密很容易泄露)。

pull_request_target:
  branches:
    - main
Run Code Online (Sandbox Code Playgroud)

问题:当从分叉上运行 PR 时,如何使 GitHub 操作访问机密,同时仍需要批准运行?

continuous-integration github github-actions github-secret cicd

6
推荐指数
1
解决办法
706
查看次数

如何在不使用 Spring Boot 的情况下将 Github Secrets 读取到 application.properties 中?

我有一个非 Spring Boot Java 应用程序,想要使用 GitHub Secrets 将一些密钥存储和读取到我的applications.properties文件中。

我已经对这些值进行了 Base64 编码并将它们存储在 GH Secrets 中,现在我尝试在我的application.properties文件中像这样访问它们:

com.stuff.some-prod-key=${{ secrets.SOME_PROD_KEY }}
Run Code Online (Sandbox Code Playgroud)

但是,当尝试使用此语法时,${{ secrets.SOME_PROD_KEY }}如果我已将其硬编码到文件中,则该值将与实际值相对应application.properties

如果没有Spring Boot,这可能吗?如果是这样,我是否需要先让我的属性文件从另一个文件中读取它,还是我这样做完全错误?

java github properties-file github-secret

5
推荐指数
0
解决办法
888
查看次数

GitHub Actions 将秘密作为可重用工作流程的输入传递

我有一个可重用的工作流程,用于构建 Docker 映像并将其推送到 ECR。

工作流的输入之一用于指定 docker build 命令的参数。这是可重用工作流程中的命令:

docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG ${{ inputs.DOCKER_BUILD_ARGS }} .
Run Code Online (Sandbox Code Playgroud)

在某些情况下,我需要 DOCKER_BUILD_ARGS 来包含机密,例如:

    secrets:
      AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    uses: XXXXX/.github/workflows/DockerBuildPushECR.yml@main
    with:
      ECR_REGISTRY: XXXXXX
      ECR_REPOSITORY: XXXXX
      DOCKER_BUILD_ARGS: "--build-arg PASSWORD=${{ secrets.PASSWORD }}"
Run Code Online (Sandbox Code Playgroud)

GitHub 抱怨工作流程无效:“无法识别的命名值:‘秘密’”,因为它只需要秘密部分中的秘密。

我无法将它作为秘密传递,因为可重用工作流程不需要这个秘密,我只是希望它成为字符串的一部分......

无法使用 env,因为它无法与可重用工作流程结合使用

我怎样才能让这个场景发挥作用?

github-actions github-secret

5
推荐指数
1
解决办法
3394
查看次数

Github Actions - 未授予对存储库的写访问权限

问题

我有一个私有存储库,我正在尝试将 python-semantic-release 添加到 GitHub Actions 中。

当尝试增加版本号时,我收到错误消息,指出我没有对存储库的写访问权限。我已经使用了 Github Classic PAT 和 Finegrained PAT,但两者都不起作用。我授予了所有回购权限只是为了确保我没有搞砸任何事情。

我还在 GitHub Actions 中回应了我的 Secrets.TOKEN,以确保它们也被正确调用。

即使我已生成具有存储库所有权限的访问令牌,为什么我仍会收到写入错误?

主.yml
name: Semantic Release

on:
  push:
    branches:
      - main

jobs:
  release:
    runs-on: ubuntu-latest
    concurrency: release

    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Step 1 - Echo out a GitHub Actions Secret to the logs
        run: |
          echo "The GitHub Action Secret will be masked:  "
          echo ${{ secrets.TOKEN }}
          echo "Trick to echo GitHub Actions Secret: …
Run Code Online (Sandbox Code Playgroud)

github access-token github-actions github-secret

5
推荐指数
1
解决办法
4412
查看次数

Github 在运行操作时返回空字符串作为秘密

当我做

${{ secrets.MY_SECRET }}
Run Code Online (Sandbox Code Playgroud)

它返回空字符串,

我是提交更改的人,它是我的存储库,因此应该不存在有关秘密授权的问题,并且也克隆了它而不是分叉,

这就是我的行动工作的样子

build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        
      - name: Setup Node.js environment
        uses: actions/setup-node@v2.1.5

      - name: Download Modules
        run: npm ci
      - name: Test
        env:
          TEST_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          TEST_SECRET: ${{ secrets.TEST_SECRET }}
        run: |
          echo ${#TEST_GITHUB_TOKEN}
          echo ${#TEST_SECRET}

      - name: React Build 
        run:  npm run build
        env:
          CI: true
          REACT_APP_FIREBASE_API_KEY: ${{ secrets.REACT_APP_FIREBASE_API_KEY }}
          REACT_APP_PIXABAY_API_KEY: ${{ secrets.REACT_APP_PIXABAY_API_KEY }}
          REACT_APP_TEST: 'TESTING'

      - name: Upload a Build Artifact
        uses: actions/upload-artifact@v2.2.3
        with:
          name: docs
          path: './build' …
Run Code Online (Sandbox Code Playgroud)

yaml github github-actions github-secret

3
推荐指数
1
解决办法
3385
查看次数