You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:11:05