如何仅在Gitlab API响应中获取特定字段?

时间:2019-03-08 21:09:03

标签: gitlab gitlab-api

例如,我只想接收项目名称: https://gitlab.com/api/v4/groups/:id/projects?fields=name

有可能吗?

3 个答案:

答案 0 :(得分:2)

这在REST API中是不可能的。但是,GitLab正在研究GraphQL支持,您将能够在GraphQL中表达它。

https://docs.gitlab.com/ee/api/graphql/

答案 1 :(得分:1)

GitLab 1.11(2019年5月)现在引入了“ basic support for group GraphQL queries

  

GraphQL API允许用户精确地请求他们所需的数据,从而可以在有限数量的请求中获得所有必需的数据。

     

在此版本中,GitLab现在在GraphQL API中支持基本的组信息支持。

请参见Issue 60786和说明文件:“ Available queries

  

GraphQL API的第一次迭代包含以下查询

     
      
  • 项目:在项目内,也可以通过IID获取mergeRequest。
  •   
  • :当前仅支持基本组信息。
  •   

答案 2 :(得分:1)

要使用Vonc和King Chung Huang的答案进行迭代,请使用以下GraphQL查询,您只能获取组内项目的名称字段:

{
  group(fullPath: "your_group_name") {
    projects {
      nodes {
        name
      }
    }
  }
}

您可以转到以下URL:https:// $ gitlab_url /-/ graphql-explorer并通过上面的查询

使用

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 '.'