【问题标题】:Use Github Secrets in Discord.js through Node.js.yml on Github通过 Github 上的 Node.js.yml 在 Discord.js 中使用 Github Secrets
【发布时间】:2020-10-15 07:29:39
【问题描述】:

所以我有一个 Discord 机器人,希望代码是公开的,而机器人令牌是私有的。我使用 Github Secrets 将令牌设为私有,但是当我在代码中使用 console.log(process.env.test) 运行代码时,它说变量是 undefined。我该如何解决??此外,输出还显示令牌无效。

Node.js.yml文件:

name: littleBot

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [12.x]

    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      env:
        test: ${{ secrets.test }}
      with: 
        node-version: ${{ matrix.node-version }}
    - run: npm i
    - run: node index.js

【问题讨论】:

    标签: javascript node.js github discord.js github-actions


    【解决方案1】:

    在这种情况下,您在设置节点时已将环境变量 test 设置为 test 密码;也就是说,为您的工作流程安装一个节点版本。很可能节点没有使用那个环境变量,所以它没有效果。

    在一个工作流程步骤中设置环境变量不适用于其他工作流程步骤,因此如果您希望该令牌在不同步骤的环境中,则需要为该步骤指定它。例如,您可能希望它在 node index.js 步骤中运行。

    它也不会影响已构建的任何内容,除非您专门将令牌包含在构建步骤中,因此如果您将此代码部署到其他地方(并且希望您没有在 GitHub Actions 上运行机器人),那么您d 需要确保它在部署中的某个地方被持久化,使用你的部署机制所拥有的任何技术。

    【讨论】:

    • 我不能用with代替env吗?
    • 否,with 将参数添加到正在运行的特定操作,而不是环境变量。您必须使用env 指定环境变量。
    • 另外,我 am 使用 github 操作来运行它,我对这些项目可以运行的分钟数有限制,所以我想在不透露机器人令牌的情况下将它们公开。
    • 所以我把env: 命令放在node index.js 命令之后,console.log 的输出是***
    • GitHub Actions 出于安全原因从日志中过滤掉机密并用星号替换它们,这意味着您正在尝试以某种形式将机密打印到控制台。
    猜你喜欢
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 2022-06-21
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多