web-dev-qa-db-ja.com

Azure DevOpsでファイルの生のコンテンツへのリンクを持つことは可能ですか?

GitHubでファイルの生のコンテンツへのリンクを生成することは可能ですが、VSTS/DevOpsで行うことは可能ですか?

8

確かに、これが必要な残りの呼び出しです:

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

https://docs.Microsoft.com/en-us/rest/api/Azure/devops/artifacts/artifact%20%20details/get%20package?view=Azure-devops-rest-5.0#package

3
4c74356b41

既存の回答を読んだ後でも、まだ少し苦労していたので、もう少し綿密な回答を残したかった。

他の人が言ったように、 パターン は(クエリを読みやすくするために別々の行に分割されています):

https://dev.Azure.com/{{organization}}/{{project}}/_apis/sourceProviders/{{providerName}}/filecontents
  ?repository={{repository}}
  &path={{path}}
  &commitOrBranch={{commitOrBranch}}
  &api-version=5.0-preview.1

しかし、これらの変数の値をどのようにして見つけますか? Azure DevOpsに移動し、左側のナビゲーションから[リポジトリ]> [ファイル]を選択して特定のファイルを選択すると、現在のURLは次のようになります。

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

これらの値は、組織、プロジェクト、およびリポジトリに使用する必要があります。パスについては、UNIXファイルパスのHTTPエンコードバージョンが表示されます。 %2F/のHTTPエンコードであるため、パスは実際には/package.jsonだけです( Postman のようなツールがそのエンコードを実行します)。

コミットまたはブランチは自明です。この値に必要なものを知っているか、masterを使用する必要があります。 documentation が現在指しているので、上記のURLにAPIバージョンを「ハードコード」しました。

最後の変数には、providerNameが必要です。つまり、TfsGitを使用する必要があります。 ソースプロバイダーのリスト を調べ、supportedCapabilities.queryFileContentsの値がtrueの値を探して、この値を取得しました。

ただし、このURLをリクエストしただけの場合は、自分自身を認証する必要があるため、「203 Non-Authoritative Information」という応答が返されます。同じ 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

そして、基本的な認証を忘れないでください!

2
Zach Posten

このURLを使用してファイルの生のコンテンツを取得することができました。

GET https://dev.Azure.com/ {organization}/{project}/_apis/sourceProviders/{providerName}/filecontents?serviceEndpointId = {serviceEndpointId}&repository = {repository}&commitOrBranch = {commitOrBranch }&path = {path}&api-version = 5.0-preview.1

私はここからこれを手に入れました。

https://docs.Microsoft.com/en-us/rest/api/Azure/devops/build/source%20providers/get%20file%20contents?view=Azure-devops-rest-5.

2
Judy Ann Dixon

添付ファイルウィンドウからファイル名をドラッグし、他のMSアプリケーションにドロップして、生のURLまたはリンクされたファイル名を取得します。

0
Prem Sharma