我正在使用 gitlab api 来获取文件和文件夹并成功,
但是我只能获取目录名称,而不能获取其子文件夹和文件。
那么,我怎样才能获得我的存储库的完整树。
请告诉我。
提前致谢,马利卡朱纳
您可以使用递归选项来使用 /projects/:id/repository/tree?recursive=true 获取完整的树
例如:https://your_gitlab_host/api/v4/projects/:id/repository/tree?recursive=true&per_page=100
您还可以使用最近发布的Gitlab GraphQL API以递归方式获取树:
{
project(fullPath: "project_name_here") {
repository {
tree(ref: "master", recursive: true){
blobs{
nodes {
name
type
flatPath
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以访问以下 URL:https://$gitlab_url/-/graphql-explorer 并执行上述查询
Graphql 端点是“https://$gitlab_url/api/graphql”上的 POST 使用curl & jq的示例:
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 '.'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6571 次 |
最近记录: |