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

PyPI可信发布:密钥交换获取API Token遇503错误求助

解决PyPI可信发布获取API Token时的503错误问题

问题分析

你遇到的503错误大概率是请求中的两个关键问题导致的:

  • POST请求变量未正确解析:单引号包裹的JSON里${oidc_token}不会被Shell解析,传递给PyPI的是字面量字符串而非实际OIDC Token。
  • OIDC Token请求URL拼接不规范:直接在$ACTIONS_ID_TOKEN_REQUEST_URL后追加&audience=pypi可能导致URL格式错误,尤其是原URL已包含查询参数时。

修正后的代码

# 获取OIDC Token,用-G参数规范添加audience参数,避免URL拼接错误
resp=$(curl -G -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
       "$ACTIONS_ID_TOKEN_REQUEST_URL" --data-urlencode "audience=pypi")
echo "RESP ${resp}"
oidc_token=$(jq -r '.value' <<< "${resp}")  # 用-r移除字符串的引号
echo "OIDC ${oidc_token}"

# 交换OIDC Token为API Token,用双引号包裹JSON确保变量被解析,同时指定Content-Type
resp=$(curl -X POST https://pypi.org/_/oidc/github/mint-token \
       -H "Content-Type: application/json" \
       -d "{\"token\":\"${oidc_token}\"}")
echo "RESP ${resp}"
api_token=$(jq -r '.token' <<< "${resp}")  # 用-r移除字符串的引号
echo "api_token ${api_token}"

额外注意事项

  • 确认GitHub Runner环境已安装jq工具,未安装需提前添加安装步骤。
  • 检查PyPI上的可信发布配置是否正确关联了目标GitHub仓库的分支、标签等条件。
  • 若仍出现503错误,可稍作等待后重试,可能是PyPI服务临时波动导致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:47:09