我已经开始玩 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 个环境,值为“string”的组织按预期存在,但 SECRET_TOKEN 和 SUPER_SECRET 为空。
是的,我确实在运行该操作的回购协议中设置了秘密:
我做错了什么吗?
原文由 lekterable 发布,翻译遵循 CC BY-SA 4.0 许可协议
我找到了一个解决方案,我所做的是解决这个问题,而不是在关闭 PR 时运行操作,我在 master 上的新提交上运行它,这必须由具有“写入权限”的人触发回购,因此,它可以访问回购秘密。
检查提交是否为合并提交有点困难,我们必须显式获取有关 PR 的更多信息,但它有效。如果有人感兴趣,我试图构建的动作的源代码: https ://github.com/lekterable/inclusive-organization-action