azure - 是否可以链接到 Azure DevOps 中文件的原始内容

标签 azure azure-devops azure-devops-rest-api

可以生成 GitHub 中文件的原始内容的链接,是否可以使用 VSTS/DevOps?

最佳答案

即使在阅读了现有的答案之后,我仍然对此有些挣扎,所以我想留下更彻底的回应。

正如其他人所说,pattern是(为了便于阅读,查询分成单独的行):

https://dev.azure.com/{{organization}}/{{project}}/_apis/sourceProviders/{{providerName}}/filecontents
  ?repository={{repository}}
  &path={{path}}
  &commitOrBranch={{commitOrBranch}}
  &api-version=7.0

但是如何找到这些变量的值呢?如果您进入 Azure DevOps,从左侧导航中选择 Repos > Files,然后选择特定文件,您当前的 url 应如下所示:

https://dev.azure.com/{{organization}}/{{project}}/_git/{{repository}}?path=%2Fpackage.json

您应该将这些值用于组织、项目和存储库。对于路径,您将看到 unix 文件路径的 HTTP 编码版本。 %2F/ 的 HTTP 编码,因此该路径实际上只是 /package.json (像 Postman 这样的工具可以做到这一点为您编码)。

提交或分支是非常不言自明的;你要么知道你想要这个值,要么你应该使用master。我在上面的 url 中“硬编码”了 api 版本,因为这就是 documentation 的内容。目前指向。

对于最后一个变量,您需要providerName。简而言之,您可能应该使用 TfsGit。我通过查看 list of source providers 得到了这个值并查找 supportedCapability.queryFileContents 的值为 true 的值。

但是,如果您只是请求此 URL,您将收到“203 非权威信息”响应,因为您仍然需要验证自己的身份。再次引用相同的documentation ,它表示使用基本身份验证,用户名的任何值和密码的个人访问 token 。您可以在 https://dev.azure.com/{{organization}}/_usersSettings/tokens 创建个人访问 token ;确保它具有构建:读取权限。

如果您不熟悉这类事情,那么在您进入代码之前,Postman 非常有助于让这些请求正常工作。

<小时/>

因此,如果您的存储库根目录下有 src 目录,并且您尝试获取 src/package.json 的文件内容,则您的 URL应该看起来像:

https://dev.azure.com/{{organization}}/{{project}}/_apis/sourceProviders/TfsGit/filecontents?repository={{repository}}&commitOrBranch=master&api-version={{api-version}}&path=src%2Fpackage.json

并且不要忘记基本身份验证!

关于azure - 是否可以链接到 Azure DevOps 中文件的原始内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54137998/

相关文章:

azure - 如何使用 Azure DevOps Rest API 创建多个文件夹

javascript - 开发运营 REST API : can not update work item status using PATCH method

azure-devops - 如何扩展返回的发布定义中的所有属性

mongodb - 如何从 mongodb compass gui 访问 azure kubernete pod mongodb 实例

Azure 资源管理器 API - 列出不包括属性的资源

azure-devops - 如何在没有 YAML 的代理池下使用特定的私有(private)代理?

azure-devops - 值为 yaml 中变量名的变量

api - 使用 Powershell 调用 Rest API - CosmosDb

.net - 编译 Azure Function v1 (.NET Framework) 会出现 Microsoft.Azure.WebJobs 的 FileNotFoundException

rest - 无法使用个人访问 token (302 重定向)对 Azure DevOps 进行身份验证