네임스페이스 API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 사용자와 그룹을 구성하는 데 사용되는 특수 리소스 카테고리인 네임스페이스와 상호작용합니다. 이 API는 결과를 필터링하기 위해 페이지네이션을 사용합니다. 현재 사용자가 사용할 수 있는 모든 네임스페이스를 나열합니다.
히스토리
- 청구 관련 필드의 가시성이 GitLab 18.3에서
restrict_namespace_api_billing_fields라는 플래그와 함께 변경되었습니다. 기본적으로 비활성화됨. - 청구 관련 필드의 가시성이 GitLab 18.9에서 일반적으로 사용 가능해졌습니다. 기능 플래그
restrict_namespace_api_billing_fields가 제거됨.
이 API를 사용하여 사용자와 그룹을 구성하는 데 사용되는 특수 리소스 카테고리인 네임스페이스와 상호작용합니다. 자세한 내용은 네임스페이스를 참조하세요.
이 API는 결과를 필터링하기 위해 페이지네이션을 사용합니다.
모든 네임스페이스 목록 조회#
히스토리
top_level_only가 GitLab 16.8에서 도입되었습니다.
현재 사용자가 사용할 수 있는 모든 네임스페이스를 나열합니다. 사용자가 관리자인 경우 이 엔드포인트는 인스턴스의 모든 네임스페이스를 반환합니다.
GET /namespaces
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
search |
문자열 | 아니요 | 이름 또는 경로에 지정된 값이 포함된 네임스페이스만 반환. |
owned_only |
불리언 | 아니요 | true이면 현재 사용자의 네임스페이스만 반환. |
top_level_only |
불리언 | 아니요 | GitLab 16.8 이상에서 true이면 최상위 네임스페이스만 반환. |
full_path_search |
불리언 | 아니요 | true이면 search 매개변수가 네임스페이스의 전체 경로에 대해 일치. |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "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": "ultimate",
"end_date": null,
"trial_ends_on": null,
"trial": false,
"root_repository_size": 100,
"projects_count": 3
},
{
"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": "ultimate",
"end_date": null,
"trial_ends_on": null,
"trial": false,
"root_repository_size": 100,
"projects_count": 3
},
{
"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,
"end_date": null,
"trial_ends_on": null,
"trial": false,
"root_repository_size": 100,
"projects_count": 3
}
]
그룹 소유자 또는 GitLab.com에서 추가 속성이 반환될 수 있습니다:
[
{
...
"max_seats_used": 3,
"max_seats_used_changed_at":"2025-05-15T12:00:02.000Z",
"seats_in_use": 2,
"projects_count": 1,
"root_repository_size":0,
"members_count_with_descendants":26,
"plan": "free",
...
}
]
네임스페이스 세부 정보 조회#
지정된 네임스페이스의 세부 정보를 조회합니다.
GET /namespaces/:id
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 네임스페이스의 ID 또는 URL 인코딩된 경로. |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "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",
"end_date": null,
"trial_ends_on": null,
"trial": false,
"root_repository_size": 100,
"projects_count": 3
}
요청 예시:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "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",
"end_date": null,
"trial_ends_on": null,
"trial": false,
"root_repository_size": 100
}
네임스페이스 사용 가능 여부 확인#
지정된 네임스페이스가 존재하는지 확인합니다. 네임스페이스가 존재하면 엔드포인트가 대체 이름을 제안합니다.
GET /namespaces/:namespace/exists
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
namespace |
문자열 | 예 | 네임스페이스의 경로. |
parent_id |
정수 | 아니요 | 상위 네임스페이스의 ID. 지정하지 않으면 최상위 네임스페이스만 반환. |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/namespaces/my-group/exists?parent_id=1"
응답 예시:
{
"exists": true,
"suggests": [
"my-group1"
]
}
