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

使用Azure DevOps REST API创建分支及提交JSON文件的问题求助

解决方案:程序化创建分支并添加setting.json文件的问题处理

修复Newtonsoft.Json.JsonReaderException错误

你用Initial commit方式添加setting.json并指定contentType: application/json时触发这个错误,核心原因是平台API要求JSON类型文件的内容必须是Base64编码后的字符串,而非直接传入原始JSON文本。

解决步骤:

  • 读取本地setting.json的原始内容
  • 将内容转换为Base64编码格式
  • 在API请求中把content字段设为这个Base64字符串,同时保留contentType: "application/json"的设置

示例代码(以GitHub API场景为例):

import base64

# 读取本地文件内容
with open("setting.json", "r", encoding="utf-8") as f:
    raw_content = f.read()

# 转换为Base64编码
encoded_content = base64.b64encode(raw_content.encode()).decode()

# 构造创建文件的请求 payload
payload = {
    "message": "Initial commit: Add setting.json",
    "content": encoded_content,
    "branch": "your-new-branch",
    "content_type": "application/json"
}

绕过本地文件路径限制的替代方案

官方API不支持直接传入本地文件路径,除了上述Base64编码方案,还有两种实用思路:

  1. 先建空分支,再用文件更新接口上传内容
    • 先从master分支创建新分支
    • 调用文件创建/更新接口,传入Base64编码后的内容完成上传,无需依赖Initial commit方式
  2. 用Git命令行配合脚本完成操作
    绕开API的限制,直接通过Git命令完成分支创建、文件提交,再调用API发起PR:
    # 从master切换并创建新分支
    git checkout -b your-new-branch
    # 复制本地setting.json到仓库目录(如果不在同一目录)
    cp /local/path/setting.json ./
    # 提交并推送分支
    git add setting.json
    git commit -m "Add setting.json"
    git push origin your-new-branch
    

额外注意事项

  • 确保API请求拥有仓库的写入权限
  • 原始JSON内容需保证格式合法,避免因语法错误导致编码后仍触发异常
  • 不同代码托管平台的API参数略有差异,比如GitLab无需显式指定content_type,传入Base64内容即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:09:22