gitlab-org--gitlab-foss/doc/api/users.md

291 lines
6.2 KiB
Markdown
Raw Normal View History

2012-07-05 09:57:45 -04:00
## List users
Get a list of users.
2013-04-16 02:26:01 -04:00
This function takes pagination parameters `page` and `per_page` to restrict the list of users.
2012-07-05 09:57:45 -04:00
```
GET /users
```
```json
[
{
"id": 1,
"username": "john_smith",
2012-07-05 09:57:45 -04:00
"email": "john@example.com",
"name": "John Smith",
"state": "active",
2012-07-05 09:57:45 -04:00
"created_at": "2012-05-23T08:00:58Z",
"bio": null,
"skype": "",
"linkedin": "",
"twitter": "",
2014-01-18 14:07:00 -05:00
"website_url": "",
"extern_uid": "john.smith",
"provider": "provider_name",
2013-08-30 15:04:26 -04:00
"theme_id": 1,
"color_scheme_id": 2,
"is_admin": false,
"can_create_group": true
2012-07-05 09:57:45 -04:00
},
{
"id": 2,
"username": "jack_smith",
2012-07-05 09:57:45 -04:00
"email": "jack@example.com",
"name": "Jack Smith",
"state": "blocked",
2012-07-05 09:57:45 -04:00
"created_at": "2012-05-23T08:01:01Z",
"bio": null,
"skype": "",
"linkedin": "",
"twitter": "",
2014-01-18 14:07:00 -05:00
"website_url": "",
"extern_uid": "jack.smith",
"provider": "provider_name",
2013-08-30 15:04:26 -04:00
"theme_id": 1,
"color_scheme_id": 3,
"is_admin": false,
2013-10-01 07:52:57 -04:00
"can_create_group": true,
"can_create_project": true
2012-07-05 09:57:45 -04:00
}
]
```
2012-07-05 09:57:45 -04:00
## Single user
Get a single user.
```
GET /users/:id
```
Parameters:
+ `id` (required) - The ID of a user
```json
{
"id": 1,
"username": "john_smith",
2012-07-05 09:57:45 -04:00
"email": "john@example.com",
"name": "John Smith",
"state": "active",
2012-07-05 09:57:45 -04:00
"created_at": "2012-05-23T08:00:58Z",
"bio": null,
"skype": "",
"linkedin": "",
"twitter": "",
2014-01-18 14:07:00 -05:00
"website_url": "",
"extern_uid": "john.smith",
"provider": "provider_name",
2013-08-30 15:04:26 -04:00
"theme_id": 1,
"color_scheme_id": 2,
"is_admin": false,
2013-10-01 07:52:57 -04:00
"can_create_group": true,
"can_create_project": true
2012-07-05 09:57:45 -04:00
}
```
## User creation
Creates a new user. Note only administrators can create new users.
```
POST /users
```
Parameters:
+ `email` (required) - Email
+ `password` (required) - Password
+ `username` (required) - Username
+ `name` (required) - Name
+ `skype` (optional) - Skype ID
+ `linkedin` (optional) - Linkedin
+ `twitter` (optional) - Twitter account
2014-01-18 14:07:00 -05:00
+ `website_url` (optional) - Website url
+ `projects_limit` (optional) - Number of projects user can create
+ `extern_uid` (optional) - External UID
+ `provider` (optional) - External provider name
+ `bio` (optional) - User's bio
+ `admin` (optional) - User is admin - true or false (default)
+ `can_create_group` (optional) - User can create groups - true or false
## User modification
Modifies an existing user. Only administrators can change attributes of a user.
```
PUT /users/:id
```
Parameters:
+ `email` - Email
+ `username` - Username
+ `name` - Name
+ `password` - Password
+ `skype` - Skype ID
+ `linkedin` - Linkedin
+ `twitter` - Twitter account
2014-01-18 14:07:00 -05:00
+ `website_url` - Website url
+ `projects_limit` - Limit projects each user can create
+ `extern_uid` - External UID
+ `provider` - External provider name
+ `bio` - User's bio
+ `admin` (optional) - User is admin - true or false (default)
+ `can_create_group` (optional) - User can create groups - true or false
Note, at the moment this method does only return a 404 error, even in cases where a 409 (Conflict) would
2013-07-29 06:46:00 -04:00
be more appropriate, e.g. when renaming the email address to some existing one.
## User deletion
Deletes a user. Available only for administrators. This is an idempotent function, calling this function
for a non-existent user id still returns a status code `200 Ok`. The JSON response differs if the user
was actually deleted or not. In the former the user is returned and in the latter not.
```
DELETE /users/:id
```
Parameters:
+ `id` (required) - The ID of the user
2012-07-05 09:57:45 -04:00
## Current user
Gets currently authenticated user.
2012-07-05 09:57:45 -04:00
```
GET /user
```
```json
{
"id": 1,
"username": "john_smith",
2012-07-05 09:57:45 -04:00
"email": "john@example.com",
"name": "John Smith",
2013-03-18 17:06:24 -04:00
"private_token": "dd34asd13as",
"state": "active",
2012-07-05 09:57:45 -04:00
"created_at": "2012-05-23T08:00:58Z",
"bio": null,
"skype": "",
"linkedin": "",
"twitter": "",
2014-01-18 14:07:00 -05:00
"website_url": "",
2013-08-30 15:04:26 -04:00
"theme_id": 1,
"color_scheme_id": 2,
2013-03-18 17:06:24 -04:00
"is_admin": false,
"can_create_group" : true,
"can_create_project" : true
2012-07-05 09:57:45 -04:00
}
```
2012-09-21 07:49:28 -04:00
2012-09-21 07:49:28 -04:00
## List SSH keys
Get a list of currently authenticated user's SSH keys.
```
GET /user/keys
```
```json
[
{
"id": 1,
2013-08-30 15:04:26 -04:00
"title" : "Public key",
2012-09-21 07:49:28 -04:00
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4
596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4
soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
},
{
"id": 3,
2013-08-30 15:04:26 -04:00
"title" : "Another Public key",
2012-09-21 07:49:28 -04:00
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4
596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4
soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
}
]
```
Parameters:
+ **none**
2012-09-21 07:49:28 -04:00
## Single SSH key
Get a single key.
```
GET /user/keys/:id
```
Parameters:
+ `id` (required) - The ID of an SSH key
```json
{
"id": 1,
2013-08-30 15:04:26 -04:00
"title" : "Public key",
2012-09-21 07:49:28 -04:00
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4
596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4
soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
}
```
2012-09-21 07:49:28 -04:00
## Add SSH key
Creates a new key owned by the currently authenticated user.
2012-09-21 07:49:28 -04:00
```
POST /user/keys
```
Parameters:
+ `title` (required) - new SSH Key's title
+ `key` (required) - new SSH key
## Add SSH key for user
Create new key owned by specified user. Available only for admin
```
POST /users/:id/keys
```
Parameters:
+ `id` (required) - id of specified user
+ `title` (required) - new SSH Key's title
+ `key` (required) - new SSH key
Will return created key with status `201 Created` on success, or `404 Not
found` on fail.
2012-09-21 07:49:28 -04:00
## Delete SSH key
Deletes key owned by currently authenticated user. This is an idempotent function and calling it on a key that is already
deleted or not available results in `200 Ok`.
2012-09-21 07:49:28 -04:00
```
DELETE /user/keys/:id
```
Parameters:
+ `id` (required) - SSH key ID