GitHub Composite Action使用Secrets提示secrets未找到问题求助
问题原因
GitHub Composite Action 默认没有直接访问父工作流secrets的权限,你不能直接在action.yml内部使用${{ secrets.XXX }}格式引用secrets,这是触发找不到对应secrets报错的核心原因。
解决方案
步骤1:修改你开发的Composite Action的action.yml配置
你需要先在action.yml顶层声明inputs参数,用来接收外部传递的凭证,再把步骤中env的取值来源改为从inputs获取,修改后的配置示例如下:
name: 'test' description: 'test' # 新增inputs定义,声明需要接收的凭证参数 inputs: github_token: description: 'GitHub访问凭证' required: true runs: using: 'composite' steps: - name: Create Branch run: echo "git branch test" env: # 从inputs中获取传递进来的token,而非直接引用secrets GITHUB_TOKEN: ${{ inputs.github_token }} shell: bash
步骤2:在调用该Action的工作流中显式传递secrets
在你的业务仓库的工作流配置文件(.github/workflows/目录下的yml文件)中调用该Composite Action时,需要把工作流可访问的secrets显式传递给Action对应的inputs参数,示例如下:
jobs: test-job: runs-on: ubuntu-latest steps: - name: 调用自定义Composite Action uses: 你的Action仓库地址@对应版本号 with: # 把工作流的secrets传递给Action的输入参数 github_token: ${{ secrets.GITHUB_TOKEN }}
补充注意事项
- 如果需要用到多个自定义secrets,只需要在action.yml的inputs字段里逐个声明,调用时逐一传递即可
GITHUB_TOKEN是GitHub自动生成的默认凭证,不需要手动在仓库secrets中添加,其他自定义凭证需要先到仓库/组织的Secrets设置里配置后才能使用- 如果你需要执行git推送等写入操作,需要给
GITHUB_TOKEN配置对应权限,可以在工作流中添加permissions: contents: write配置即可
内容的提问来源于stack exchange,提问作者Josh Bowden
相关产品推荐
相关产品推荐

