debian-mirror-gitlab/doc/api/namespaces.md

258 lines
5.8 KiB
Markdown
Raw Normal View History

2021-01-29 00:20:46 +05:30
---
stage: none
group: unassigned
2021-02-22 17:27:13 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
2021-01-29 00:20:46 +05:30
---
2017-09-10 17:25:29 +05:30
# Namespaces API
2015-09-11 14:41:01 +05:30
2021-03-11 19:13:27 +05:30
Usernames and group names fall under a special category called namespaces.
2016-04-02 18:10:28 +05:30
For users and groups supported API calls see the [users](users.md) and
[groups](groups.md) documentation respectively.
[Pagination](README.md#pagination) is used.
2015-09-11 14:41:01 +05:30
## List namespaces
2016-04-02 18:10:28 +05:30
Get a list of the namespaces of the authenticated user. If the user is an
administrator, a list of all namespaces in the GitLab instance is shown.
2015-09-11 14:41:01 +05:30
2020-04-08 14:13:33 +05:30
```plaintext
2015-09-11 14:41:01 +05:30
GET /namespaces
```
2016-04-02 18:10:28 +05:30
Example request:
2020-03-13 15:44:24 +05:30
```shell
2020-06-23 00:09:42 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces"
2016-04-02 18:10:28 +05:30
```
Example response:
2015-09-11 14:41:01 +05:30
```json
[
{
"id": 1,
2018-03-17 18:26:18 +05:30
"name": "user1",
2015-09-11 14:41:01 +05:30
"path": "user1",
2017-09-10 17:25:29 +05:30
"kind": "user",
2020-10-24 23:57:45 +05:30
"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
2015-09-11 14:41:01 +05:30
},
{
"id": 2,
2018-03-17 18:26:18 +05:30
"name": "group1",
2015-09-11 14:41:01 +05:30
"path": "group1",
2017-09-10 17:25:29 +05:30
"kind": "group",
"full_path": "group1",
2018-03-27 19:54:05 +05:30
"parent_id": null,
2020-10-24 23:57:45 +05:30
"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
2017-08-17 22:00:37 +05:30
},
{
"id": 3,
2018-03-17 18:26:18 +05:30
"name": "bar",
2017-08-17 22:00:37 +05:30
"path": "bar",
"kind": "group",
"full_path": "foo/bar",
2018-03-27 19:54:05 +05:30
"parent_id": 9,
2020-10-24 23:57:45 +05:30
"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
2015-09-11 14:41:01 +05:30
}
]
```
2019-09-30 21:07:59 +05:30
Users on GitLab.com [Bronze or higher](https://about.gitlab.com/pricing/#gitlab-com) may also see
the `plan` parameter associated with a namespace:
```json
[
{
"id": 1,
"name": "user1",
"plan": "bronze",
...
}
]
```
2021-02-22 17:27:13 +05:30
Users on GitLab.com also see `max_seats_used` and `seats_in_use` parameters.
2021-01-03 14:25:43 +05:30
`max_seats_used` is the highest number of users the group had. `seats_in_use` is
the number of license seats currently being used. Both values are updated
once a day.
2021-02-22 17:27:13 +05:30
`max_seats_used` and `seats_in_use` are non-zero only for namespaces on paid plans.
2021-01-03 14:25:43 +05:30
```json
[
{
"id": 1,
"name": "user1",
"billable_members_count": 2,
"max_seats_used": 3,
"seats_in_use": 2,
...
}
]
```
2021-02-22 17:27:13 +05:30
NOTE:
2020-07-28 23:09:34 +05:30
Only group maintainers/owners are presented with `members_count_with_descendants`, as well as `plan` **(BRONZE ONLY)**.
2017-09-10 17:25:29 +05:30
2015-09-11 14:41:01 +05:30
## Search for namespace
2016-04-02 18:10:28 +05:30
Get all namespaces that match a string in their name or path.
2015-09-11 14:41:01 +05:30
2020-04-08 14:13:33 +05:30
```plaintext
2015-09-11 14:41:01 +05:30
GET /namespaces?search=foobar
```
2019-07-07 11:18:12 +05:30
| Attribute | Type | Required | Description |
| --------- | ------ | -------- | ----------- |
| `search` | string | no | Returns a list of namespaces the user is authorized to see based on the search criteria |
2016-04-02 18:10:28 +05:30
Example request:
2020-03-13 15:44:24 +05:30
```shell
2020-06-23 00:09:42 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces?search=twitter"
2016-04-02 18:10:28 +05:30
```
Example response:
2015-09-11 14:41:01 +05:30
```json
[
{
2016-04-02 18:10:28 +05:30
"id": 4,
2018-03-17 18:26:18 +05:30
"name": "twitter",
2016-04-02 18:10:28 +05:30
"path": "twitter",
2017-08-17 22:00:37 +05:30
"kind": "group",
"full_path": "twitter",
2018-03-27 19:54:05 +05:30
"parent_id": null,
2020-10-24 23:57:45 +05:30
"avatar_url": null,
"web_url": "https://gitlab.example.com/groups/twitter",
"members_count_with_descendants": 2,
"billable_members_count": 2,
2021-01-03 14:25:43 +05:30
"max_seats_used": 0,
"seats_in_use": 0,
2020-10-24 23:57:45 +05:30
"plan": "default",
"trial_ends_on": null,
"trial": false
2015-09-11 14:41:01 +05:30
}
]
```
2018-03-17 18:26:18 +05:30
## Get namespace by ID
Get a namespace by ID.
2020-04-08 14:13:33 +05:30
```plaintext
2018-03-17 18:26:18 +05:30
GET /namespaces/:id
```
2019-07-07 11:18:12 +05:30
| Attribute | Type | Required | Description |
| --------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | ID or [URL-encoded path of the namespace](README.md#namespaced-path-encoding) |
2018-03-17 18:26:18 +05:30
Example request:
2020-03-13 15:44:24 +05:30
```shell
2020-06-23 00:09:42 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces/2"
2018-03-17 18:26:18 +05:30
```
Example response:
```json
{
"id": 2,
"name": "group1",
"path": "group1",
"kind": "group",
"full_path": "group1",
2018-03-27 19:54:05 +05:30
"parent_id": null,
2020-10-24 23:57:45 +05:30
"avatar_url": null,
"web_url": "https://gitlab.example.com/groups/group1",
"members_count_with_descendants": 2,
"billable_members_count": 2,
2021-01-03 14:25:43 +05:30
"max_seats_used": 0,
"seats_in_use": 0,
2020-10-24 23:57:45 +05:30
"plan": "default",
"trial_ends_on": null,
"trial": false
2018-03-17 18:26:18 +05:30
}
```
Example request:
2020-03-13 15:44:24 +05:30
```shell
2020-06-23 00:09:42 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces/group1"
2018-03-17 18:26:18 +05:30
```
Example response:
```json
{
"id": 2,
"name": "group1",
"path": "group1",
"kind": "group",
"full_path": "group1",
2018-03-27 19:54:05 +05:30
"parent_id": null,
2020-10-24 23:57:45 +05:30
"avatar_url": null,
"web_url": "https://gitlab.example.com/groups/group1",
"members_count_with_descendants": 2,
"billable_members_count": 2,
2021-01-03 14:25:43 +05:30
"max_seats_used": 0,
"seats_in_use": 0,
2020-10-24 23:57:45 +05:30
"plan": "default",
"trial_ends_on": null,
"trial": false
2018-03-17 18:26:18 +05:30
}
```
2021-04-29 21:17:54 +05:30
## Get existence of a namespace
Get existence of a namespace by path. Suggests a new namespace path that does not already exist.
```plaintext
GET /namespaces/:namespace/exists
```
| Attribute | Type | Required | Description |
| ----------- | ------- | -------- | ----------- |
| `namespace` | string | yes | Namespace's path. |
| `parent_id` | integer | no | The ID of the parent namespace. If no ID is specified, only top-level namespaces are considered. |
Example request:
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/namespaces/my-group/exists?parent_id=1"
```
Example response:
```json
{
"exists": true,
"suggests": [
"my-group1"
]
}
```