J'utilise API GITLAB pour obtenir les fichiers et les dossiers et réussir, P>
Mais je peux obtenir uniquement des noms de répertoires, pas ses sous-dossiers et ses fichiers. P>
Alors, comment puis-je obtenir un arbre complet de mon référentiel? P>
S'il vous plaît laissez-moi savoir. P>
Merci d'avance, Mallikarjuna P>
3 Réponses :
Selon le API , nous pouvons utiliser P>
Pour répertorier les fichiers et les répertoires dans un projet. Mais nous ne pouvons obtenir que les fichiers et les répertoires en haut de niveau du représentant de cette manière, ainsi que des sous-répertoires de répertoires en haut de niveau avec Param Si vous voulez obtenir des annuaires de Obtenir / Projects /: ID / Référentiel / Arbre Code> P>
chemin code>. P>.
script / js / composants code>, par exemple, vous pouvez utiliser p>
Obtenir / Projects /: ID / Repository / Tree? Chemin = script / js / composants code> p> p>
@Rwking merci de votre rappel. Je trouve le moyen de traverser l'arbre et de mettre à jour ma réponse.
Vous pouvez utiliser le option récursive Pour obtenir l'arbre complet en utilisant / projects /: id / référentiel / arborescence? Récursive = true p> Par exemple: HTTPS: // VOTRE_GITLAB_HOST / API / V4 / Projets /: ID / Référentiel / Arbre? Recursive = TRUE & PER_PAGE = 100 P> Vous pouvez également utiliser le API GITLAB GRAPHQL pour obtenir les arbres de manière récursive: p> Vous pouvez accéder à l'URL suivante: https: // $ gitlab_url / - / graphql-explorateur et passé La requête ci-dessus P> Le noeud final graphql est un message sur "https: // $ gitlab_url / API / graphql"
Un exemple en utilisant Curl & JQ : P> API GRAPHQL H3>
gitlab_url=<your gitlab host>
access_token=<your access token>
project_name=<your project name>
branch=master
curl -s -H "Authorization: Bearer $access_token" \
-H "Content-Type:application/json" \
-d '{
"query": "{ project(fullPath: \"'$project_name'\") { repository { tree(ref: \"'$branch'\", recursive: true){ blobs{ nodes { name type flatPath }}}}}}"
}' "https://$gitlab_url/api/graphql" | jq '.'
Savez-vous s'il y a une limite au nombre d'articles d'arbres peuvent être retournés dans un seul appel?
Vous devez faire un codage d'URL sur le chemin complet du fichier. Par exemple, le Saut suppose que le chemin de fichier de votre référentiel est: JavaScript / Header.js P>
alors vous pouvez utiliser:
curl -head --header "jeton privé:
Quelle commande utilisez-vous actuellement pour obtenir les noms de répertoire?
Hi @ vonc, j'utilise obtenir une méthode comme
Obtenir / Projects CODE> Pour obtenir des projets liés à Auth Token