【问题标题】:How can I use Github secrets in JS files如何在 JS 文件中使用 Github 机密
【发布时间】:2020-04-28 09:46:45
【问题描述】:

我有一个基本的 git 存储库,其中包含用于构建和部署的 github 操作(主要是 HTML 和 TS 文件)。

但是我必须在一些需要保密的 API 密钥中使用。

所以我想为他们使用 GITHUB SECRETS。

如何在我的 js(或 TS)文件中访问 GITHUB SECRETS,以便正确使用 github 操作构建它?

【问题讨论】:

  • @imjared nop,我的问题是针对 github 机密的。我知道秘密是如何工作的,我只想知道如何正确使用它们与 github 和 github 操作
  • 不能将文件中的secrets用作环境变量,secrets只能用于Github Actions
  • @AhmetZeybek 是的,但它们可能是在使用批处理的操作构建过程中创建 env 文件并将它们插入其中的一种方法,对吗?
  • @AhmetZeybek 已经读过,但在我的情况下不起作用,需要类似 run: echo "export const environment = { firebase_api_key : ${{ secrets.FIREBASE_TOKEN }}" > env/env.ts但得到 yaml 错误

标签: javascript bash github yaml github-actions


【解决方案1】:

您可以将 Secrets 作为 ENV 变量传入。

示例:

   ...
   steps:
      - name: Git checkout
        uses: actions/checkout@v2

      - name: Use Node 12.x
        uses: actions/setup-node@v1
        with:
          node-version: 12.x

      - name: Install Dependencies (prod)
        run: yarn install --frozen-lockfile --production

      - name: Run Tests (JEST)
        run: yarn test --ci --silent --testPathIgnorePatterns=experimental
        env:
          CI: true
          API_KEY: ${{ secrets.API_KEY }}

在 Node.js 中,您可以通过 process.env.API_KEY 访问它。

【讨论】:

  • @antoinehervet 我通过 Node.js 的用法编辑了我的答案
  • 非常感谢您的代码 sn-p。仅供参考,您不再需要设置CI: truesee here 了解详情
【解决方案2】:

我找到了实现它的方法,尽管它可能不是最好的(而且我绝对不是 bash 专家)

所以创建一个setEnv.sh文件

mkdir env
echo "export const environment = { firebase_api_key : '$1' }"  > env/env.ts

将您的 API 密钥作为第一个参数,创建一个 env 文件夹并使用您的 api 密钥保存 TS 代码。

然后添加这一行

- run: sh setEnvironment.sh ${{ secrets.FIREBASE_API_KEY }}

进入您的 github 操作脚本,该脚本将执行您的脚本并设置密钥。

您现在只需在代码中使用 environment.firebase_api_key


注意:您的构建需要加密您的密钥,否则它将被暴露。但这可能很有用,例如,如果您在网站上使用 API 密钥,并且您还希望您的网站代码在 Github 上公开可用,而无需这些普通密钥。

【讨论】:

    猜你喜欢
    • 2021-01-20
    • 1970-01-01
    • 2020-12-18
    • 2022-08-05
    • 2020-04-16
    • 1970-01-01
    • 2020-09-29
    • 2022-01-03
    • 2022-12-11
    相关资源
    最近更新 更多