azure-devops - 是否可以通过 api 获取提交更改(仅限差异)?
问题描述
我正在尝试通过 api 拉取提交更改,我得到的只是文件本身的路径,就像在整个文件中一样。
我想要实现的是每次提交查看单个文件的更改(仅限差异)。
例如:如果我使用 Github 查询相同的内容,我会得到如下差异:
"@@ -1 +0,0 @@\n- console.log(\"Blasting!\")"
Azure-devops 中是否有类似的解决方案?
谢谢!
解决方案
我想要实现的是每次提交查看单个文件的更改(仅限差异)。
没有现有的 Rest API 可以满足您的需求。但是您可以参考以下步骤来获取 git diff 的内容。
第 1 步:您可以使用 Rest API 来获取提交 id。
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits?api-version=5.0
第 2 步:您可以使用 Rest API通过 commit id 获取提交。
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits/{commitId}?api-version=5.0
在 Rest API Result 中,您需要记录 parentsid的值。
第三步:你可以使用Rest API来获取文件路径。
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits/{commitId}/changes?api-version=6.0
Step4:您可以使用以下 API 来获取差异内容。
Post https://dev.azure.com/Organization/Project /_api/_versioncontrol/fileDiff?__v=5&diffParameters={value}&repositoryId={repositoryid}
{value} 是 Json 类型。
这是一个例子:
{"originalPath":"filepath","originalVersion":"Parentsid","modifiedPath":"filepath","modifiedVersion":"commitid","partialDiff":true,"includeCharDiffs":true}
您可以将该值添加到 API URL。
然后运行 API,结果将包含 git diff 内容。(2 表示删除,1 表示添加)
这是一个结果示例:
这是 票,你可以参考一下。
推荐阅读
- javascript - 反应等待一个循环(和 setState)在另一个循环之前完成
- python - 尽管已安装(未找到模块)MBP,但无法导入熊猫
- python - 即使脚本有效,也会收到“标题前脚本输出结束”错误
- laravel - Laravel Dusk 测试与 Gitlab CI 错误,无法连接到端口:9515:连接被拒绝
- node.js - Lambda、MongoDB、Cloudfront 和 S3 堆栈不断给我超时错误 (CORS)
- google-cloud-platform - 如何使用 Google Natural Language API 丰富 Bigquery 表中的数据?
- css - node_modules CSS 文件未在生产 Webpacker 中编译
- cordova - 如何控制离子电容器中的音频输出源
- c# - 如何在 Asp.Net Core Web API 中返回随机字符串值并在两侧划分结果
- r - 将命令行实用程序放在 R 包中的什么位置?