使用GitHub REST API获取部署变量遇403权限错误求助
问题解决:GitHub Actions中调用API获取环境变量返回403
问题原因
你遇到的Resource not accessible by integration错误,核心原因是GitHub Actions默认提供的GITHUB_TOKEN权限不足,无法读取环境变量;而本地使用的个人访问令牌(PAT)通常包含足够的仓库权限,所以能正常访问。
解决方案
1. 为工作流添加环境读取权限
在调用的工作流(health.yml)或者主工作流的对应job中,添加permissions配置,赋予environment: read权限:
方式一:修改health.yml
name: health on: workflow_call: inputs: DEPLOYMENT_TYPE: required: true type: string jobs: health: runs-on: ubuntu-latest # 添加环境读取权限 permissions: environment: read steps: - name: Test variables run: | curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/${{github.repository}}/environments/${{inputs.DEPLOYMENT_TYPE}}/variables/URL
方式二:在主CD工作流中配置权限
jobs: deploy: uses: ./.github/workflows/deploy.yml health-check: uses: ./.github/workflows/health.yml with: DEPLOYMENT_TYPE: 'dev' secrets: inherit # 为该job添加环境读取权限 permissions: environment: read health-check-prod: uses: ./.github/workflows/health.yml with: DEPLOYMENT_TYPE: 'prod' secrets: inherit # 为该job添加环境读取权限 permissions: environment: read
2. 检查环境的保护规则
如果添加权限后仍然报错,需要确认目标环境(dev/prod)的访问限制:
- 进入仓库设置 -> 环境 -> 选择对应环境
- 查看部署分支:确保触发工作流的
main分支在允许的分支列表中 - 查看必要审阅者:如果环境设置了审批要求,需要先完成审批才能访问环境变量(push触发的工作流若分支符合要求则无需手动审批)
内容的提问来源于stack exchange,提问作者SKY-BIRD Web Media
相关产品推荐
相关产品推荐

