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

GitHub Actions中credentials.json文件为空问题求助

解决GitHub Actions中Google Sheets凭证文件为空的问题

可能的原因及对应解决方案

1. Shell环境不兼容导致命令执行失败

如果你的工作流使用Windows runner,默认shell是PowerShell,而你写的echo | tr是bash语法,会导致命令无法正确解析,最终生成空文件。

解决方法:在保存凭证的step中指定使用bash shell,同时用printf替代echo来处理JSON特殊字符:

- name: Save Google Sheets credentials
  shell: bash
  run: printf "%s" "${{ secrets.GOOGLE_SHEETS_CREDENTIALS }}" > credentials.json

printf能更可靠地保留JSON中的引号、换行等特殊字符,避免echo自动解析导致内容丢失。

2. Secrets名称大小写不匹配

GitHub仓库密钥是大小写敏感的,确认工作流中引用的GOOGLE_SHEETS_CREDENTIALS和你在仓库设置中添加的密钥名称完全一致,包括大小写。

3. 仓库未获取到组织级Secrets的权限

如果你的密钥是在组织级别创建的,需要确认该组织Secrets已授权给当前仓库使用:

  • 进入组织Settings → Secrets and variables → Actions
  • 找到对应的Secrets,检查"Repository access"是否包含你的目标仓库

4. JSON内容包含特殊字符导致echo解析异常

直接用echo输出包含双引号、反斜杠的JSON时,bash会解析这些特殊字符,导致内容被截断或丢失。使用printf可避免这类问题,如方案1所示。

调试建议

不要直接输出完整Secrets(会被GitHub自动屏蔽),可以通过以下步骤查看文件基本信息:

- name: Debug credentials file
  shell: bash
  run: |
    echo "File size: $(wc -c credentials.json)"
    echo "First 5 lines:"
    head -5 credentials.json

这样能确认文件是否有内容,同时不会泄露敏感信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 03:45:54