命名空间 API
用户名和群组名称都在一个叫做命名空间的特殊类别下。
有关用户和群组支持的 API 调用的相关内容,请参见用户和群组。
此 API 使用分页。
列出命名空间
获取授权用户的命名空间列表。如果用户是管理员,将显示极狐GitLab 实例中所有命名空间的列表。
GET /namespaces
GET /namespaces?search=foobar
GET /namespaces?owned_only=true
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
search
| string | no | 根据搜索条件返回用户有权查看的命名空间列表 |
owned_only
| boolean | no | 在极狐GitLab 14.2 及更高版本中,仅返回拥有的命名空间列表 |
请求示例:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces"
响应示例:
[
{
"id": 1,
"name": "user1",
"path": "user1",
"kind": "user",
"full_path": "user1",
"parent_id": null,
"avatar_url": "https://secure.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "https://gitlab.example.com/user1",
"billable_members_count": 1,
"plan": "default",
"trial_ends_on": null,
"trial": false
},
{
"id": 2,
"name": "group1",
"path": "group1",
"kind": "group",
"full_path": "group1",
"parent_id": null,
"avatar_url": null,
"web_url": "https://gitlab.example.com/groups/group1",
"members_count_with_descendants": 2,
"billable_members_count": 2,
"plan": "default",
"trial_ends_on": null,
"trial": false
},
{
"id": 3,
"name": "bar",
"path": "bar",
"kind": "group",
"full_path": "foo/bar",
"parent_id": 9,
"avatar_url": null,
"web_url": "https://gitlab.example.com/groups/foo/bar",
"members_count_with_descendants": 5,
"billable_members_count": 5,
"plan": "default",
"trial_ends_on": null,
"trial": false
}
]
拥有者也可以看见和命名空间相关联的 plan
属性:
[
{
"id": 1,
"name": "user1",
"plan": "silver",
...
}
]
JihuLab.com 上的用户还可以看到 max_seats_used
和 seats_in_use
参数。
max_seats_used
是该群组拥有的最大用户数。seats_in_use
是当前正在使用的许可证席位数。两个值都每天更新一次。
max_seats_used
和 seats_in_use
只对付费计划中的命名空间是非零的。
[
{
"id": 1,
"name": "user1",
"billable_members_count": 2,
"max_seats_used": 3,
"seats_in_use": 2,
...
}
]
只有群组拥有者会以
members_count_with_descendants
和 plan
呈现。通过 ID 获取命名空间
通过 ID 获取命名空间。
GET /namespaces/:id
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id
| integer/string | yes | ID 或 URL 编码的命名空间路径 |
请求示例:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces/2"
响应示例:
{
"id": 2,
"name": "group1",
"path": "group1",
"kind": "group",
"full_path": "group1",
"parent_id": null,
"avatar_url": null,
"web_url": "https://gitlab.example.com/groups/group1",
"members_count_with_descendants": 2,
"billable_members_count": 2,
"max_seats_used": 0,
"seats_in_use": 0,
"plan": "default",
"trial_ends_on": null,
"trial": false
}
请求示例:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces/group1"
响应示例:
{
"id": 2,
"name": "group1",
"path": "group1",
"kind": "group",
"full_path": "group1",
"parent_id": null,
"avatar_url": null,
"web_url": "https://gitlab.example.com/groups/group1",
"members_count_with_descendants": 2,
"billable_members_count": 2,
"max_seats_used": 0,
"seats_in_use": 0,
"plan": "default",
"trial_ends_on": null,
"trial": false
}
获取命名空间的存在情况
通过路径获取命名空间的存在情况。建议一个不存在的新命名空间路径。
GET /namespaces/:namespace/exists
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
namespace
| string | yes | 命名空间的路径 |
parent_id
| integer | no | 父命名空间的 ID。如果未指定 ID,仅考虑顶级命名空间 |
请求示例:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces/my-group/exists?parent_id=1"
响应示例:
{
"exists": true,
"suggests": [
"my-group1"
]
}