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

本地环境下Github Actions添加JSON作为Secrets报错求助

解决Github Actions本地测试(act)中Google Drive下载的JSON解码错误

问题核心

你遇到的JSONDecodeError本质是传入的服务账号JSON格式不正确,或act加载secret时出现格式问题,导致程序读取到空值或无效JSON字符串。

分步解决方案

1. 修正act的secret文件格式

act的my.secrets文件要求键值对不能有空格,你当前写法SERVICE_ACCOUNT_AUTH_JSON = [my_config_json]中等号两边的空格会被act解析为值的一部分,导致JSON开头存在无效空格,直接触发解码错误。

正确格式:

SERVICE_ACCOUNT_AUTH_JSON={"type":"service_account","project_id":"你的项目ID",...}

注意:

  • 等号前后无空格
  • 直接填入未转义的纯文本JSON(无需base64编码,也不要用引号包裹整个JSON)

2. 处理JSON中的特殊字符

如果原始服务账号JSON包含换行,需要先压缩为单行:

  • 删除JSON里所有换行符
  • 确保所有引号都是英文双引号,无语法错误(原始JSON本身的双引号不需要额外转义)

3. 验证secret是否正确加载

可在workflow中临时添加调试步骤(仅本地测试用,勿提交到仓库),确认JSON是否正确传递:

- name: Debug secret content
  run: echo ${{ secrets.SERVICE_ACCOUNT_AUTH_JSON }}

执行act后,查看该步骤输出,核对是否与原始服务账号JSON一致。

4. 确认action参数配置

你的workflow配置逻辑正确,可再次核对参数名与实际值:

- name: Download Google Docs from Google Drive
  uses: k0staa/download-gdrive-file-action@v1
  with:
    service-account-auth-json: ${{ secrets.SERVICE_ACCOUNT_AUTH_JSON }}
    download-file-name: 你的目标文件名  # 替换为实际文件名
    export-media-type: text/plain
    download-to: 你的目标路径  # 替换为实际路径

额外注意事项

  • 切勿将服务账号JSON提交到版本控制系统,本地测试后及时加密或删除my.secrets文件
  • 确保服务账号邮箱已被授予Google Drive目标文件的访问权限(需手动共享文件给该邮箱)

内容的提问来源于stack exchange,提问作者박상우

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:10:01