Azure DevOps 中文件的原始内容是否有可能 link
Is it possible to have a link to raw content of file in Azure DevOps
可以为 GitHub 中文件的原始内容生成 link,是否可以用 VSTS/DevOps 来处理?
当然,这是需要的其余调用:
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
我能够使用此 URL 获取文件的原始内容。
GET https://dev.azure.com/{组织}/{项目}/_apis/sourceProviders/{providerName}/filecontents?serviceEndpointId={serviceEndpointId}&repository={repository}&commitOrBranch={commitOrBranch}&path={path}& api-version=5.0-preview.1
我从这里得到的。
即使阅读了现有的答案,我仍然对此有些挣扎,所以我想留下更彻底的回应。
正如其他人所说,pattern 是(查询拆分为单独的行以便于阅读):
https://dev.azure.com/{{organization}}/{{project}}/_apis/sourceProviders/{{providerName}}/filecontents
?repository={{repository}}
&path={{path}}
&commitOrBranch={{commitOrBranch}}
&api-version=5.0-preview.1
但是您如何找到这些变量的值呢?如果您进入 Azure DevOps,从左侧导航中选择 Repos > Files,然后 select 一个特定的文件,您当前的 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 并为 supportedCapabilities.queryFileContents
.
寻找一个值为 true
的值得到了这个值
但是,如果您只是请求此 URL,您将收到“203 非权威信息”响应,因为您仍然需要对自己进行身份验证。再次参考相同的 documentation,它说使用具有任意值的用户名和密码的个人访问令牌的基本身份验证。您可以在 https://dev.azure.com/{{organization}}/_usersSettings/tokens
创建个人访问令牌;确保它具有 令牌管理 - 读取和管理 权限。
如果您不熟悉这类事情,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
并且不要忘记基本身份验证!
将附件 windows 中的文件名拖放到任何其他 MS 应用程序中以获取原始 URL 或链接文件名。
我对此很陌生,在访问 Azure DevOps Repo 中的原始文件时遇到了问题。在 Github.
中很简单
我想在 CMD 中下载一个文件,BASH 使用 Curl。
首先,我在浏览器中浏览到文件内容,记下粗体部分:
https://dev.azure.com/myOrg/_git/myProjectName?path=%2FMyFileName.ps1
然后我构建了类似于@Zach 上面发布的内容的URL。
https://dev.azure.com/myOrg/myProjectName/_apis/sourceProviders/TfsGit/filecontents?repository= myProjectName&commitOrBranch=master&api-version=5.0-preview.1&path=%2FMyFileName.ps1
现在,当我在浏览器中粘贴上面的 URL 时,它会以类似于 GitHub 的 RAW 格式显示内容。
不同之处在于我必须在我的 Azure DevOps 帐户中设置一个 PAT(个人访问令牌),然后在下面的 DOS/BASH 示例中验证 URL:
curl -u myPATUserName:er90gngekj5er0df "https://dev.azure.com/myOrg/myProjectName/_apis/sourceProviders/TfsGit/filecontents?repository=myProjectName&commitOrBranch=master&api-version=5.0-preview.1&path=%2FMyFileName.ps1" -# -L -o MyFileName.ps1
您可以使用 chrome.
获取原始 URL
打开开发者工具并查看“网络”选项卡。
导航以在 DevOps 门户(内容面板)中查看所需的文件。一旦内容视图可见,再次检查网络选项卡并找到以“Items?Path”开头的 URL,这是包含所需“url:”元素的 json 响应。
大多数答案都很好地解决了这个问题,但是在具有匿名访问权限的 public 回购的上下文中,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 完全相同。
可以为 GitHub 中文件的原始内容生成 link,是否可以用 VSTS/DevOps 来处理?
当然,这是需要的其余调用:
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
我能够使用此 URL 获取文件的原始内容。
GET https://dev.azure.com/{组织}/{项目}/_apis/sourceProviders/{providerName}/filecontents?serviceEndpointId={serviceEndpointId}&repository={repository}&commitOrBranch={commitOrBranch}&path={path}& api-version=5.0-preview.1
我从这里得到的。
即使阅读了现有的答案,我仍然对此有些挣扎,所以我想留下更彻底的回应。
正如其他人所说,pattern 是(查询拆分为单独的行以便于阅读):
https://dev.azure.com/{{organization}}/{{project}}/_apis/sourceProviders/{{providerName}}/filecontents
?repository={{repository}}
&path={{path}}
&commitOrBranch={{commitOrBranch}}
&api-version=5.0-preview.1
但是您如何找到这些变量的值呢?如果您进入 Azure DevOps,从左侧导航中选择 Repos > Files,然后 select 一个特定的文件,您当前的 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 并为 supportedCapabilities.queryFileContents
.
true
的值得到了这个值
但是,如果您只是请求此 URL,您将收到“203 非权威信息”响应,因为您仍然需要对自己进行身份验证。再次参考相同的 documentation,它说使用具有任意值的用户名和密码的个人访问令牌的基本身份验证。您可以在 https://dev.azure.com/{{organization}}/_usersSettings/tokens
创建个人访问令牌;确保它具有 令牌管理 - 读取和管理 权限。
如果您不熟悉这类事情,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
并且不要忘记基本身份验证!
将附件 windows 中的文件名拖放到任何其他 MS 应用程序中以获取原始 URL 或链接文件名。
我对此很陌生,在访问 Azure DevOps Repo 中的原始文件时遇到了问题。在 Github.
中很简单我想在 CMD 中下载一个文件,BASH 使用 Curl。 首先,我在浏览器中浏览到文件内容,记下粗体部分: https://dev.azure.com/myOrg/_git/myProjectName?path=%2FMyFileName.ps1
然后我构建了类似于@Zach 上面发布的内容的URL。
https://dev.azure.com/myOrg/myProjectName/_apis/sourceProviders/TfsGit/filecontents?repository= myProjectName&commitOrBranch=master&api-version=5.0-preview.1&path=%2FMyFileName.ps1
现在,当我在浏览器中粘贴上面的 URL 时,它会以类似于 GitHub 的 RAW 格式显示内容。 不同之处在于我必须在我的 Azure DevOps 帐户中设置一个 PAT(个人访问令牌),然后在下面的 DOS/BASH 示例中验证 URL:
curl -u myPATUserName:er90gngekj5er0df "https://dev.azure.com/myOrg/myProjectName/_apis/sourceProviders/TfsGit/filecontents?repository=myProjectName&commitOrBranch=master&api-version=5.0-preview.1&path=%2FMyFileName.ps1" -# -L -o MyFileName.ps1
您可以使用 chrome.
获取原始 URL打开开发者工具并查看“网络”选项卡。
导航以在 DevOps 门户(内容面板)中查看所需的文件。一旦内容视图可见,再次检查网络选项卡并找到以“Items?Path”开头的 URL,这是包含所需“url:”元素的 json 响应。
大多数答案都很好地解决了这个问题,但是在具有匿名访问权限的 public 回购的上下文中,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 完全相同。