네임스페이스 API
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
이 API를 사용하여 사용자와 그룹을 조직하는 특수 리소스 범주인 네임스페이스와 상호작용합니다. 이 API는 결과를 필터링하는 데 페이지네이션을 사용합니다. 현재 사용자가 사용할 수 있는 네임스페이스를 모두 조회합니다.
히스토리
이 API를 사용하여 사용자와 그룹을 조직하는 특수 리소스 범주인 네임스페이스와 상호작용합니다. 자세한 내용은 네임스페이스를 참고합니다.
이 API는 결과를 필터링하는 데 페이지네이션을 사용합니다.
모든 네임스페이스 목록 조회#
히스토리
- GitLab 19.4에서
ci_minutes_usage가 도입되었습니다.
현재 사용자가 사용할 수 있는 네임스페이스를 모두 조회합니다. 사용자가 관리자이면 이 엔드포인트는 인스턴스의 모든 네임스페이스를 반환합니다.
GET /namespaces
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
search |
string | 아니요 | 이름 또는 경로에 지정한 값이 포함된 네임스페이스만 반환합니다. |
owned_only |
boolean | 아니요 | true 이면 현재 사용자의 네임스페이스만 반환합니다. |
top_level_only |
boolean | 아니요 | true 이면 최상위 네임스페이스만 반환합니다. |
full_path_search |
boolean | 아니요 | true 이면 search 파라미터를 네임스페이스의 전체 경로와 대조합니다. |
성공하면 200 OK과 다음 응답 속성을 반환합니다.
| 속성 | 유형 | 설명 |
|---|---|---|
id |
integer | 네임스페이스의 ID 입니다. |
name |
string | 네임스페이스의 이름입니다. |
path |
string | 네임스페이스의 경로 세그먼트입니다. |
kind |
string | 네임스페이스 유형입니다. user 또는 group 입니다. |
full_path |
string | 네임스페이스의 전체 경로입니다. 하위 그룹인 경우 상위 경로를 포함합니다. |
parent_id |
integer | 상위 네임스페이스의 ID 입니다. 최상위 네임스페이스는 null 입니다. |
avatar_url |
string | 네임스페이스 아바타의 URL 입니다. 설정하지 않았으면 null 입니다. |
web_url |
string | GitLab 에서의 네임스페이스 URL 입니다. |
billable_members_count |
integer | 네임스페이스의 과금 대상 멤버 수입니다. |
plan |
string | 네임스페이스의 구독 플랜입니다(예: free, ultimate). |
end_date |
date | 현재 구독의 종료일입니다. 해당하지 않으면 null 입니다. |
trial_ends_on |
date | 체험 기간이 끝나는 날짜입니다. 체험 중이 아니면 null 입니다. |
trial |
boolean | 네임스페이스가 체험 플랜을 사용 중인지 여부입니다. |
root_repository_size |
integer | 네임스페이스에 있는 모든 리포지터리의 총 크기입니다. 단위는 바이트입니다. |
projects_count |
integer | 네임스페이스의 프로젝트 수입니다. |
members_count_with_descendants |
integer | 하위 그룹의 멤버를 포함한 전체 멤버 수입니다. 그룹 네임스페이스에만 반환됩니다. |
max_seats_used |
integer | 현재 구독 기간에 사용한 최대 시트 수입니다. Group Owner 또는 GitLab.com 에서만 반환됩니다. |
max_seats_used_changed_at |
datetime | max_seats_used가 마지막으로 변경된 시각입니다. Group Owner 또는 GitLab.com 에서만 반환됩니다. |
seats_in_use |
integer | 현재 사용 중인 시트 수입니다. Group Owner 또는 GitLab.com 에서만 반환됩니다. |
ci_minutes_usage |
object | 컴퓨팅 분(compute minutes) 사용량 내역입니다. GitLab.com에서는 모든 네임스페이스에 적용되는 컴퓨팅 분 할당량 체계를 반영합니다. GitLab Self-Managed와 GitLab Dedicated에서는 네임스페이스에 컴퓨팅 할당량이 설정된 경우에만 반환됩니다. 사용자가 Owner 권한을 가졌거나 관리자인 경우 최상위 그룹에 대해서만 반환됩니다. |
ci_minutes_usage.total_minutes_used |
integer | 현재 청구 기간에 사용한 총 컴퓨팅 분입니다. |
ci_minutes_usage.monthly_minutes_used |
integer | 월별 할당량에서 사용한 컴퓨팅 분입니다. |
ci_minutes_usage.purchased_minutes_used |
integer | 추가로 구매한 할당량에서 사용한 컴퓨팅 분입니다. |
shared_runners_minutes_limit |
integer | 네임스페이스에 할당된 월별 컴퓨팅 분 할당량입니다. GitLab.com의 인스턴스 관리자에게만 반환됩니다. |
extra_shared_runners_minutes_limit |
integer | 월별 할당량에 더해 추가된 컴퓨팅 분입니다. 구매한 분 패키지를 반영합니다. GitLab.com의 인스턴스 관리자에게만 반환됩니다. |
요청 예시:
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
}
]
Group Owner 또는 GitLab.com에서는 다음과 같은 추가 속성이 반환될 수 있습니다.
컴퓨트 분 및 구매한 스토리지 관련 속성 네 가지(shared_runners_minutes_limit,
extra_shared_runners_minutes_limit, additional_purchased_storage_size,
additional_purchased_storage_ends_on)는 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",
"shared_runners_minutes_limit": 133,
"extra_shared_runners_minutes_limit": 50,
"additional_purchased_storage_size": 1000,
"additional_purchased_storage_ends_on": "2022-06-18",
...
}
]
네임스페이스 세부 정보 조회#
히스토리
- GitLab 19.4에서
ci_minutes_usage가 도입되었습니다.
지정한 네임스페이스의 세부 정보를 조회합니다.
GET /namespaces/:id
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 네임스페이스의 ID 또는 URL 인코딩된 경로입니다. |
성공하면 200 OK과 다음 응답 속성을 반환합니다.
| 속성 | 유형 | 설명 |
|---|---|---|
id |
integer | 네임스페이스의 ID 입니다. |
name |
string | 네임스페이스의 이름입니다. |
path |
string | 네임스페이스의 경로 세그먼트입니다. |
kind |
string | 네임스페이스 유형입니다. user 또는 group 입니다. |
full_path |
string | 네임스페이스의 전체 경로입니다. 하위 그룹인 경우 상위 경로를 포함합니다. |
parent_id |
integer | 상위 네임스페이스의 ID 입니다. 최상위 네임스페이스는 null 입니다. |
avatar_url |
string | 네임스페이스 아바타의 URL 입니다. 설정하지 않았으면 null 입니다. |
web_url |
string | GitLab 에서의 네임스페이스 URL 입니다. |
billable_members_count |
integer | 네임스페이스의 과금 대상 멤버 수입니다. |
plan |
string | 네임스페이스의 구독 플랜입니다(예: free, ultimate). |
end_date |
date | 현재 구독의 종료일입니다. 해당하지 않으면 null 입니다. |
trial_ends_on |
date | 체험 기간이 끝나는 날짜입니다. 체험 중이 아니면 null 입니다. |
trial |
boolean | 네임스페이스가 체험 플랜을 사용 중인지 여부입니다. |
root_repository_size |
integer | 네임스페이스에 있는 모든 리포지터리의 총 크기입니다. 단위는 바이트입니다. |
projects_count |
integer | 네임스페이스의 프로젝트 수입니다. |
members_count_with_descendants |
integer | 하위 그룹의 멤버를 포함한 전체 멤버 수입니다. 그룹 네임스페이스에만 반환됩니다. |
max_seats_used |
integer | 현재 구독 기간에 사용한 최대 시트 수입니다. Group Owner 또는 GitLab.com 에서만 반환됩니다. |
max_seats_used_changed_at |
datetime | max_seats_used가 마지막으로 변경된 시각입니다. Group Owner 또는 GitLab.com 에서만 반환됩니다. |
seats_in_use |
integer | 현재 사용 중인 시트 수입니다. Group Owner 또는 GitLab.com 에서만 반환됩니다. |
ci_minutes_usage |
object | 컴퓨팅 분(compute minutes) 사용량 내역입니다. GitLab.com에서는 모든 네임스페이스에 적용되는 컴퓨팅 분 할당량 체계를 반영합니다. GitLab Self-Managed와 GitLab Dedicated에서는 네임스페이스에 컴퓨팅 할당량이 설정된 경우에만 반환됩니다. 사용자가 Owner 권한을 가졌거나 관리자인 경우 최상위 그룹에 대해서만 반환됩니다. |
ci_minutes_usage.total_minutes_used |
integer | 현재 청구 기간에 사용한 총 컴퓨팅 분입니다. |
ci_minutes_usage.monthly_minutes_used |
integer | 월별 할당량에서 사용한 컴퓨팅 분입니다. |
ci_minutes_usage.purchased_minutes_used |
integer | 추가로 구매한 할당량에서 사용한 컴퓨팅 분입니다. |
shared_runners_minutes_limit |
integer | 네임스페이스에 할당된 월별 컴퓨팅 분 할당량입니다. GitLab.com의 인스턴스 관리자에게만 반환됩니다. |
extra_shared_runners_minutes_limit |
integer | 월별 할당량에 더해 추가된 컴퓨팅 분입니다. 구매한 분 패키지를 반영합니다. GitLab.com의 인스턴스 관리자에게만 반환됩니다. |
요청 예시:
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,
"ci_minutes_usage": {
"total_minutes_used": 450,
"monthly_minutes_used": 400,
"purchased_minutes_used": 50
}
}
요청 예시:
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,
"ci_minutes_usage": {
"total_minutes_used": 450,
"monthly_minutes_used": 400,
"purchased_minutes_used": 50
}
}
네임스페이스 사용 가능 여부 확인#
지정한 네임스페이스가 존재하는지 확인합니다. 네임스페이스가 존재하면 이 엔드포인트가 대체 이름을 제안합니다.
GET /namespaces/:namespace/exists
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
namespace |
string | 예 | 네임스페이스의 경로입니다. |
parent_id |
integer | 아니요 | 상위 네임스페이스의 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"
]
}