如何通过REST API获取Azure DevOps代码仓库的文件内容
通过Azure DevOps REST API获取代码仓库文件内容的方案
你之前调用的sourceProviders/Git/filecontents接口是用于对接外部托管Git仓库的场景,需要传入已绑定的服务端点ID,不适合读取Azure DevOps平台内托管的Git仓库内容,建议使用官方Git Items接口实现需求。
正确请求格式
GET https://dev.azure.com/{组织名}/{项目名}/_apis/git/repositories/{仓库名}/items?path={文件路径}&versionDescriptor.version={分支名/提交ID}&versionDescriptor.versionType=branch&api-version=7.1
参数说明
{组织名}:替换为你的Azure DevOps组织名称{项目名}:替换为目标仓库所属的项目名称{仓库名}:替换为要读取内容的Git仓库名称{文件路径}:替换为目标文件的完整路径,例如/src/index.js,注意不能直接传根路径/获取目录内容,要获取文件内容必须指定到具体文件{分支名/提交ID}:替换为目标版本的分支名或者Commit哈希值,若按提交ID查询可将versionDescriptor.versionType改为commit
请求注意事项
- 鉴权需要配置正确:请求头必须添加
Authorization字段,值为Basic {PAT编码后的值},所用PAT需要授予**代码(读取)**权限 - 如果你需要获取目录结构而非单个文件内容,添加参数
recursionLevel=full即可返回目录下所有条目信息 - 如果你需要直接下载文件而非获取JSON格式返回,添加参数
download=true即可
请求示例
要获取org组织下project项目的demo仓库main分支中README.md的内容,请求写法如下:
GET https://dev.azure.com/org/project/_apis/git/repositories/demo/items?path=/README.md&versionDescriptor.version=main&versionDescriptor.versionType=branch&api-version=7.1
内容的提问来源于stack exchange,提问作者priya
相关产品推荐
相关产品推荐

