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

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


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!