Ash*_*rma 4 python git python-requests azure-devops azure-devops-rest-api
我试图自动执行将某些文件推送到存储库中的各个文件夹的任务。我尝试使用azure提供的Rest API。当使用 Pushes Create API 进行相同操作时,从文档中,这是请求正文中的内容
请求正文的快照:

这是我无法弄清楚如何进入 python 脚本“oldObjectId”的具体事情:“8b67126d2500e28c771f82c9ddc292679978197c”
我知道我必须使用 python requests 库发送一个包含与上面类似的数据的 JSON 变量。但我不知道如何在python脚本中获取oldobjectid。我尝试到处查找(文档、stackoverflow...),但无法找到如何找到 oldobjectid。
api文档的链接
使用 Python 推送创建 Api 将文件上传/推送到 Azure Devops Repo 时如何查找 oldobjectid
这oldobjectid是Azure Devops Repo 当前分支上的最新提交 ID 。
要获取oldObjectId(最新提交 ID),我们可以使用 REST API推送 -带有 URI 参数的列表top=1和searchCriteria.refName=refs/heads/master:
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pushes?&$top=1&searchCriteria.refName=refs/heads/master&api-version=6.0
Run Code Online (Sandbox Code Playgroud)
现在,我们得到了pushId,并且我们可以使用 REST API Pushes - Get来获取commitId:
然后,我们可以使用 REST API Pushes - Create with request body:
{
"refUpdates": [
{
"name": "refs/heads/master",
"oldObjectId": "e71544e80870e83cfd3eb3a797eda9c6227c66a7"
}
],
"commits": [
{
"comment": "Added task markdown file.",
"changes": [
{
"changeType": "add",
"item": {
"path": "/tasks.md"
},
"newContent": {
"content": "# Tasks\n\n* Item 1\n* Item 2",
"contentType": "rawtext"
}
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
测试结果:
| 归档时间: |
|
| 查看次数: |
1368 次 |
| 最近记录: |