web-dev-qa-db-fra.com

Est-il possible d'avoir un lien vers le contenu brut du fichier dans Azure DevOps

Il est possible de générer un lien vers le contenu brut du fichier dans GitHub, est-il possible de le faire avec VSTS/DevOps?

8
Gregory Suvalian

Bien sûr, voici l'appel de repos nécessaire:

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

Même après avoir lu les réponses existantes, j'ai toujours eu un peu de mal avec cela, donc je voulais laisser un peu plus de réponse approfondie.

Comme d'autres l'ont dit, le modèle est (requête divisée sur des lignes séparées pour faciliter la lecture):

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

Mais comment trouvez-vous les valeurs de ces variables? Si vous allez dans votre Azure DevOps, choisissez Repos> Fichiers dans la navigation de gauche et sélectionnez un fichier particulier, votre URL actuelle devrait ressembler à ceci:

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

Vous devez utiliser ces valeurs pour l'organisation, le projet et le référentiel. Pour le chemin, vous verrez une version codée HTTP du chemin du fichier Unix. %2F est le codage HTTP pour /, donc ce chemin est en fait juste /package.json (un outil comme Postman fera cet encodage pour vous).

Commit ou branch est assez explicite; vous savez ce que vous voulez pour cette valeur ou vous devez utiliser master. J'ai "codé en dur" la version api dans l'url ci-dessus parce que c'est ce que pointe documentation actuellement.

Pour la dernière variable, vous avez besoin de providerName. En bref, vous devriez probablement utiliser TfsGit. J'ai obtenu cette valeur en parcourant la liste des fournisseurs source et en recherchant une avec une valeur de true pour supportedCapabilities.queryFileContents.

Cependant , si vous demandez simplement cette URL, vous obtiendrez une réponse "203 Informations sans autorité" car vous devez toujours vous authentifier. Se référant à nouveau à la même documentation , il dit d'utiliser l'authentification de base avec n'importe quelle valeur pour le nom d'utilisateur et un jeton d'accès personnel pour le mot de passe. Vous pouvez créer un jeton d'accès personnel sur https://dev.Azure.com/{{organization}}/_usersSettings/tokens. Si vous n'êtes pas familier avec ce genre de choses, Postman est à nouveau très utile pour faire fonctionner ces requêtes avant d'entrer dans le code.


Donc, si vous avez un référentiel avec un répertoire src à la racine et que vous essayez d'obtenir le contenu du fichier de src/package.json, votre URL devrait ressembler à ceci:

https://dev.Azure.com/{{organization}}/{{project}}/_apis/sourceProviders/TfsGit/filecontents?repository={{repository}}&commitOrBranch=master&api-version={{api-version}}&path=src%2Fpackage.json

Et n'oubliez pas l'authentification de base!

2
Zach Posten

J'ai pu obtenir le contenu brut d'un fichier en utilisant cette 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

Je l'ai eu d'ici.

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

Faites glisser le nom de fichier depuis les fenêtres des pièces jointes et déposez-le dans n'importe quelle autre application MS pour obtenir l'URL brute ou le nom de fichier lié.

0
Prem Sharma