InfoGrab Docs

네임스페이스 API

요약

이 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"
    ]
}

네임스페이스 API

Tier: Free, Premium, Ultimate
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"
    ]
}