有没有办法使用 API 列出拉取请求文件(来自源分支)及其在 Azure Devops 中的位置?还有其他使用C#的方法吗?

2024-05-20

我的要求是使用 API 或 C# 读取/提取 Azure DevOps 拉取请求中存在的每个文件的源代码。 我可以使用下面的示例 URL 下载特定文件的代码 -

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/items?path=/{CodePath}&version={branch name}&api-version=5.1

现在我需要文件列表及其存储在 Azure DevOps 分支中的位置

我尝试了来自可用 REST API 的不同 GET 调用。 例如:

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/iterations/{iterationId}?api-version=5.1

or

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/attachments/{fileName}?api-version=5.1-preview.1

这些调用正在返回信息:

  1. 关于文件提交
  2. 关于描述中所附文件

我必须满足要求的信息: 组织名称、存储库名称、分支名称、拉取请求 ID


有没有办法使用 API 列出拉取请求文件(来自源分支)及其在 Azure Devops 中的位置?还有其他使用C#的方法吗?

恐怕没有这样的方法可以使用 API 列出拉取请求文件(来自源分支)及其在 Azure Devops 中的位置。

首先,当我们使用 Pull Request API 时,我们可以获得Organization name and Pull request ID直接地。

然后我们就可以使用REST API拉取请求 - 获取拉取请求 https://learn.microsoft.com/en-us/rest/api/azure/devops/git/pull%20requests/get%20pull%20requests?view=azure-devops-rest-5.1得到repository name and sourceRefName (Branch Name):

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests?api-version=5.1

其次,我们可以使用 REST API拉取请求提交 - 获取拉取请求提交 https://learn.microsoft.com/en-us/rest/api/azure/devops/git/pull%20request%20commits/get%20pull%20request%20commits?view=azure-devops-rest-5.1获取 PR 中的提交:

然后,我们可以通过 REST API 使用提交 ID提交 - 获取更改 https://learn.microsoft.com/en-us/rest/api/azure/devops/git/commits/get%20changes?view=azure-devops-rest-5.1到文件路径:

现在,我们得到了我们想要的所有信息。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法使用 API 列出拉取请求文件(来自源分支)及其在 Azure Devops 中的位置?还有其他使用C#的方法吗? 的相关文章

随机推荐