GET https://feeds.dev.azure.com/{organization}/_apis/packaging/Feeds/{feedId}/packages/{packageId}?includeAllVersions={includeAllVersions}&includeUrls={includeUrls}&isListed={isListed}&isRelease={isRelease}&includeDeleted={includeDeleted}&includeDescription={includeDescription}&api-version=5.0-preview.1
8条答案
按热度按时间p1iqtdky1#
即使在阅读了现有的答案后,我仍然对此有点挣扎,所以我想留下更彻底的回应。
正如其他人所说,pattern是(为了便于阅读,将查询拆分为单独的行):
但是,如何找到这些变量的值呢?如果您进入Azure DevOps,从左侧导航栏选择Repos〉Files,然后选择特定文件,您的当前URL应该如下所示:
对于组织、项目和存储库,应该使用这些值。对于path,您将看到unix文件路径的HTTP编码版本。
%2F
是/
的HTTP编码,因此path实际上就是/package.json
(Postman之类的工具会为您完成该编码)。提交或分支是非常不言自明的;你要么知道你想要这个值,要么你应该使用
master
。我已经在上面的url中“硬编码”了API版本,因为这是documentation当前指向的。对于最后一个变量,您需要
providerName
。简而言之,您可能应该使用TfsGit
。我通过查看list of source providers并为supportedCapabilities.queryFileContents
查找一个值为true
的变量来获得此值。但是,如果你只是请求这个URL,你会得到一个“203非权威信息”的响应,因为你仍然需要验证你自己。再次参考同一个documentation,它说使用Basic auth,用户名为任意值,密码为个人访问令牌。你可以在
https://dev.azure.com/{{organization}}/_usersSettings/tokens
创建一个个人访问令牌;确保它具有令牌管理-读取和管理权限。如果您不熟悉这类事情,那么在您进入代码之前,Postman对于让这些请求工作非常有帮助。
因此,如果你有一个根目录为
src
的仓库,并且你试图获取src/package.json
的文件内容,你的URL应该类似于:不要忘记基本的授权!
ukxgm1gy2#
当然,这是需要的休息电话:
https://learn.microsoft.com/en-us/rest/api/azure/devops/artifacts/artifact%20%20details/get%20package?view=azure-devops-rest-5.0#package
kupeojn63#
我能够得到一个文件的原始内容使用这个网址。
获取https://dev.azure.com/ {组织}/{项目}/_apis/源提供程序/{提供程序名称}/文件内容?服务端点ID ={服务端点ID}&存储库={存储库}&提交或分支={提交或分支}&路径={路径}& api版本=5.0-预览。1
这里交给我吧。
https://learn.microsoft.com/en-us/rest/api/azure/devops/build/source%20providers/get%20file%20contents?view=azure-devops-rest-5.0
iibxawm44#
您可以使用chrome获取原始URL。
打开开发人员工具并查看“网络”选项卡。
导航以查看DevOps门户(内容面板)中的所需文件。内容视图可见后,再次检查网络选项卡并找到以“项目?路径”开头的URL,这是包含所需“url:“元素的json响应。
ttcibm8c5#
将文件名从附件窗口拖放到任何其他MS应用程序中,以获得原始URL或链接的文件名。
gojuced76#
大多数答案都很好地解决了这个问题,但在匿名访问的公共回购协议中,API是不同的,下面是在这种情况下工作的api:
https://dev.azure.com/{{your_user_name}}/{{project_name}}/_apis/git/repositories/{{repo_name_encoded}}/items?scopePath={{path_to_your_file}}&api-version=6.0
这与Github提供的“原始”url完全相同。
ds97pgxw7#
如果您想快速获取正在浏览的特定文件的原始URL,另一种可能有用的方法是:
(edit:不幸的是,这只适用于浏览器知道如何打开的文件类型,否则它仍然会提供下载...)
4szc88ey8#
我是个新手,在访问Azure DevOps Repo中的原始文件时遇到了问题,在Github中很简单。
我想下载一个文件在CMD和BASH使用 curl 。首先我浏览到文件内容在浏览器中做一个笔记的粗体部分:https://dev.azure.com/myOrg/_git/myProjectName?path=%2F**MyFileName.ps1* *
然后我构建了一个类似于@Zach上面发布的URL。
https://dev.azure.com/myOrg/myProjectName/_apis/sourceProviders/TfsGit/filecontents?repository=myProjectName&commitOrBranch=master&api-version=5.0-preview.1&path=%2F**MyFileName.ps1* *
现在,当我将上面的URL粘贴到浏览器中时,它会以RAW格式显示内容,类似于GitHub。不同之处在于,我必须在我的Azure DevOps帐户中设置PAT(个人访问令牌),然后在DOS/BASH中验证URL,如下所示: