我正在使用:
GET https://localhost/api/v4/search?scope=projects&search=test
来查找名为"test"的项目,但是我不仅得到了名为"test"的项目,还有"qtest"、"testot"或"test1"等。
有没有可能只得到精确匹配的名称?
我正在使用:
GET https://localhost/api/v4/search?scope=projects&search=test
来查找名为"test"的项目,但是我不仅得到了名为"test"的项目,还有"qtest"、"testot"或"test1"等。
有没有可能只得到精确匹配的名称?
sort
和order_by
。您可以按id
、name
、created_at
和last_activity_at
字段排序。使用jq
可以过滤模糊搜索返回的结果:
project_name="test"
curl --silent --show-error --location \
"https://gitlab.com/api/v4/search?scope=projects&search=${project_name}" \
--header "PRIVATE-TOKEN: ${GITLAB_COM_API_PRIVATE_TOKEN}" | jq \
--raw-output --arg project_name "${project_name}" '.[] | \
select(.name == $project_name)'
当然,这会返回12个项目。哪一个是我的?
如果您能包含命名空间,那将更好。
project_path_with_namespace="$username/test"
curl --silent --show-error --location \
"https://gitlab.com/api/v4/search?scope=projects&search=${project_path_with_namespace}" \
--header "PRIVATE-TOKEN: ${GITLAB_COM_API_PRIVATE_TOKEN}" | jq \
--arg path_with_namespace "${project_path_with_namespace}" '.[] | \
select(.path_with_namespace == $path_with_namespace)'