可以生成 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/