如何使用gitlab api获取子文件夹和文件

如何使用gitlab api获取子文件夹和文件,gitlab,curl,jq,Gitlab,Curl,Jq,我正在使用gitlab api获取文件和文件夹并成功 但是我只能得到目录名,不能得到它的子文件夹和文件 那么,如何获取存储库的完整树呢 请让我知道 提前感谢,, Mallikarjuna根据 GET/projects/:id/repository/tree 列出项目中的文件和目录。但我们只能通过这种方式获取repo顶层的文件和目录,并使用parampath获取顶层目录的子目录 例如,如果您想获取script/js/components的目录,可以使用 GET/projects/:id/repos

我正在使用gitlab api获取文件和文件夹并成功

但是我只能得到目录名,不能得到它的子文件夹和文件

那么,如何获取存储库的完整树呢

请让我知道

提前感谢,, Mallikarjuna

根据

GET/projects/:id/repository/tree

列出项目中的文件和目录。但我们只能通过这种方式获取repo顶层的文件和目录,并使用param
path
获取顶层目录的子目录

例如,如果您想获取
script/js/components
的目录,可以使用

GET/projects/:id/repository/tree?path=script/js/components

RESTAPI 您可以使用/projects/:id/repository/tree?recursive=true来获取完整的树

例如:

GraphQLAPI 您还可以使用最近发布的以递归方式获取树:

{
项目(完整路径:“项目名称”此处){
存储库{
树(参考:“主”,递归:真){
斑点{
节点{
名称
类型
平坦道路
}
}
}
}
}
}
您可以转到以下URL:https://$gitlab_URL/-/graphql浏览器并通过上述查询

Graphql端点是“https://$gitlab_url/api/Graphql”上的帖子 使用&的示例:

gitlab\u url=
访问令牌=
项目名称=
分支=主
curl-s-H“授权:持有人$access_令牌”\
-H“内容类型:应用程序/json”\
-d'{
查询“{project(fullPath:\”'$project\u name'\”{repository{tree(ref:\“'$branch'\”,recursive:true){blobs{nodes{name type flatPath}}”
}“https://$gitlab_url/api/graphql”| jq”

您当前使用什么命令获取目录名?您好@VonC,我正在使用get方法,如
get/projects
获取与auth相关的项目token@rwking谢谢你的提醒。我找到了遍历树的方法并更新了我的答案。你知道一次调用可以返回多少树项目是否有限制吗?