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

GitHub环境删除API无法使用,查询环境列表返回404错误

问题描述

我可以通过以下GitHub CLI命令查看仓库的部署列表,且返回的JSON中能看到已部署的环境名称:

# GitHub CLI API命令

gh api \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /repos/OWNER/REPO/deployments

但执行以下查询环境列表的命令时,无法获取结果,返回404错误:

# GitHub CLI API命令

gh api \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /repos/OWNER/REPO/environments

我的目标是删除一个已清空所有部署的环境,执行删除命令后也返回同样的404错误:

# GitHub CLI API命令

gh api \
  --method DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /repos/OWNER/REPO/environments/ENVIRONMENT_NAME

错误响应如下:

{
  "message": "Not Found",
  "documentation_url": "https://docs.github.com/rest/deployments/environments#delete-an-environment",
  "status": "404"
}
gh: Not Found (HTTP 404)

注:已正确替换OWNER和REPO参数。


可能的解决办法

1. 确认账号权限

GitHub环境相关的API(查询/删除环境)需要仓库管理员权限,或者被明确授予了该环境的管理权限。仅拥有仓库的写权限不足以操作环境端点,先检查你的账号权限:

  • 进入仓库的「Settings」→「Collaborators and teams」,查看自身权限等级;
  • 如果是环境级权限,进入「Settings」→「Environments」,检查目标环境的权限配置。

2. 处理环境名称的特殊字符

如果目标环境名称包含空格、斜杠(/)、百分号等特殊字符,需要对名称进行URL编码后再放入API路径中。比如:

  • 环境名prod staging需转成prod%20staging;
  • 环境名prod/test需转成prod%2Ftest。

也可以直接使用GitHub CLI的环境专用命令替代API调用,它会自动处理编码问题:

# 列出仓库所有环境
gh repo environment list

# 删除指定环境
gh repo environment delete ENVIRONMENT_NAME

3. 确认环境的可管理状态

通过部署自动生成的环境(未手动配置过环境规则、保护分支等),部分情况下不会出现在环境列表API的返回结果中,但这类环境依然可以通过删除命令移除,前提是权限足够且环境名编码正确。

4. 检查API版本兼容性

若使用的是GitHub Enterprise Server(GHES),需确认服务器版本是否支持/repos/{owner}/{repo}/environments端点——部分较旧的GHES版本可能不兼容当前API版本的环境操作。


内容的提问来源于stack exchange,提问作者MJBZA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:44:54