【发布时间】:2020-03-03 09:18:31
【问题描述】:
我已经开始使用 GitHub 操作,但在访问我作为 env 传递的存储库秘密方面遇到了困难。
我的工作流程文件:
name: Invite
on:
pull_request:
branches: [master]
types: [closed]
jobs:
invite:
runs-on: ubuntu-latest
steps:
- name: Hello world action
uses: lekterable/inclusive-organization-action@master
env:
SECRET_TOKEN: ${{ secrets.SECRET_TOKEN }}
organization: string
SUPER_SECRET: ${{ secrets.SUPER_SECRET }}
动作索引文件
const core = require('@actions/core')
const github = require('@actions/github')
const run = async () => {
try {
...
console.log('env', process.env)
const token = process.env.SECRET_TOKEN
const secret = process.env.SUPER_SECRET
const organization = process.env.organization
console.log('organization', organization)
console.log('token?', !!token)
console.log('secret?', !!secret)
console.log('token length', token.length)
...
} catch (error) {
core.setFailed(error.message)
}
}
run()
如您所见,我传递了 3 个 env,值为 'string' 的组织按预期存在,但 SECRET_TOKEN 和 SUPER_SECRET 为空。
是的,我确实在运行该操作的存储库中设置了秘密:
是不是我做错了什么?
【问题讨论】:
-
这就是如何在 bash 中使用它们,我使用的是 nodejs
-
他们谈论的是分叉定义工作流的存储库,而不是分叉操作的存储库。在我的情况下,它将是'github-actions-test-repo',所以如果有人分叉它,他将无法访问这些秘密,这显然是有道理的,但我没有在分叉上工作,因为它是我的存储库。感谢您的尝试,谢谢;)
-
您是否重新运行
npm run build来更新您的更改?到./dist/index.js,我基本上设置相同并且没有问题,github.com/lcherone/gh-actions/commit/… 秘密环境变量(process.env.foo)不会显示它的值,但它有 10 个字符长。我现在在想你只是在 ./dist 中有旧代码。 -
您在提到分叉回购时实际上是对的,我只是理解他们的意思是当您在分叉回购中打开拉取请求时,动作不会得到秘密,但实际上当您打开 PR从分叉的 repo 到主要的 repo,action 仍然无法访问它们,感谢您的帮助:)
标签: javascript node.js github github-actions