Par exemple, je souhaite recevoir uniquement les noms de projets: https://gitlab.com/api/v4/groups/: id / projects? fields = name
Est-ce possible?
3 Réponses :
Ce n'est pas possible dans l'API REST. Mais, GitLab travaille sur la prise en charge de GraphQL, et vous pourrez l'exprimer dans GraphQL.
GitLab 1.11 (mai 2019) a maintenant introduit un " support de base pour les requêtes GraphQL de groupe "
Les API GraphQL permettent aux utilisateurs de demander exactement les données dont ils ont besoin, ce qui permet d'obtenir toutes les données requises dans un nombre limité de requêtes.
Dans cette version, GitLab prend désormais en charge la prise en charge des informations de groupe de base dans l'API GraphQL.
Consultez le numéro 60786 et la documentation: " Requêtes disponibles "
Une première itération d'une API GraphQL comprend les requêtes suivantes
- projet : dans un projet, il est également possible de récupérer une mergeRequest par IID.
- groupe : seules les informations de base sur le groupe sont actuellement acceptées.
Pour itérer sur les réponses de Vonc & King Chung Huang, en utilisant la requête GraphQL suivante, vous ne pouvez obtenir que le champ de nom des projets de votre groupe:
gitlab_url=<your gitlab host> access_token=<your access token> group_name=<your group name> curl -s -H "Authorization: Bearer $access_token" \ -H "Content-Type:application/json" \ -d '{ "query": "{ group(fullPath: \"'$group_name'\") { projects { nodes { name }}}}" }' "https://$gitlab_url/api/graphql" | jq '.'
Vous pouvez aller à l'URL suivante: https: // $ gitlab_url / - / graphql-explorer et après la requête ci-dessus
{ group(fullPath: "your_group_name") { projects { nodes { name } } } }