- List users
- User creation
- Delete authentication identity from user
- List current user (for normal users)
- User status
- Set user status
- List user projects
- List SSH keys for user
- Add SSH key
- Delete SSH key for current user
- List all GPG keys
- Add a GPG key
- List all GPG keys for given user
- Add a GPG key for a given user
- List emails
- Single email
- Add email for user
- Delete email for given user
- Unblock user
- Activate user
- Get all impersonation tokens of a user
- Create an impersonation token
Users API
- List users
- User creation
- Delete authentication identity from user
- List current user (for normal users)
- User status
- Set user status
- List user projects
- List SSH keys for user
- Add SSH key
- Delete SSH key for current user
- List all GPG keys
- Add a GPG key
- List all GPG keys for given user
- Add a GPG key for a given user
- List emails
- Add email
- Delete email for current user
- Block user
- Deactivate user
- Get an impersonation token of a user
- Revoke an impersonation token
- User memberships (admin only)
Users API
活动用户=帐户总数-被阻止的用户
获取用户列表.
此函数使用分页参数和per_page
来限制用户列表.
[ { "id": 1, "username": "john_smith", "name": "John Smith", "state": "active", "avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg", "web_url": "http://localhost:3000/john_smith" }, { "id": 2, "username": "jack_smith", "name": "Jack Smith", "state": "blocked", "avatar_url": "http://gravatar.com/../e32131cd8.jpeg", "web_url": "http://localhost:3000/jack_smith" } ]
您还可以使用?search=
通过名称或主要电子邮件搜索用户. 例如. /users?search=John
.
另外,您可以按用户名查找用户:
GET /users?username=:username
例如:
GET /users?username=jack_smith
另外,您可以根据状态过滤用户,例如. blocked
, active
此选项仅用于过滤被blocked
或active
用户. 它不支持active=false
或blocked=false
.
GET /users?active=true
GET /users?blocked=true
注意:用户名搜索不区分大小写.
For admins
GET /users
[ { "id": 1, "username": "john_smith", "email": "john@example.com", "name": "John Smith", "state": "active", "avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg", "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", "is_admin": false, "bio": null, "bio_html": null, "location": null, "skype": "", "linkedin": "", "twitter": "", "website_url": "", "organization": "", "job_title": "", "last_sign_in_at": "2012-06-01T11:41:01Z", "confirmed_at": "2012-05-23T09:05:22Z", "theme_id": 1, "last_activity_on": "2012-05-23", "color_scheme_id": 2, "projects_limit": 100, "current_sign_in_at": "2012-06-02T06:36:55Z", "note": "DMCA Request: 2018-11-05 | DMCA Violation | Abuse | https://gitlab.zendesk.com/agent/tickets/123", "identities": [ {"provider": "github", "extern_uid": "2435223452345"}, {"provider": "bitbucket", "extern_uid": "john.smith"}, {"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"} ], "can_create_group": true, "can_create_project": true, "two_factor_enabled": true, "external": false, "private_profile": false, "current_sign_in_ip": "196.165.1.102", "last_sign_in_ip": "172.127.2.22" }, { "id": 2, "username": "jack_smith", "email": "jack@example.com", "name": "Jack Smith", "state": "blocked", "avatar_url": "http://localhost:3000/uploads/user/avatar/2/index.jpg", "web_url": "http://localhost:3000/jack_smith", "created_at": "2012-05-23T08:01:01Z", "is_admin": false, "bio": null, "bio_html": null, "location": null, "skype": "", "linkedin": "", "twitter": "", "website_url": "", "organization": "", "job_title": "", "last_sign_in_at": null, "confirmed_at": "2012-05-30T16:53:06.148Z", "theme_id": 1, "last_activity_on": "2012-05-23", "color_scheme_id": 3, "projects_limit": 100, "current_sign_in_at": "2014-03-19T17:54:13Z", "identities": [], "can_create_group": true, "can_create_project": true, "two_factor_enabled": true, "external": false, "private_profile": false, "current_sign_in_ip": "10.165.1.102", "last_sign_in_ip": "172.127.2.22" } ]
使用 GitLab 还将看到shared_runners_minutes_limit
和extra_shared_runners_minutes_limit
参数.
[ { "id": 1, ... "shared_runners_minutes_limit": 133, "extra_shared_runners_minutes_limit": 133, ... } ]
使用 GitLab Silver 或更高版本的用户还将看到group_saml
提供程序选项:
[ { "id": 1, ... "identities": [ {"provider": "github", "extern_uid": "2435223452345"}, {"provider": "bitbucket", "extern_uid": "john.smith"}, {"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"}, {"provider": "group_saml", "extern_uid": "123789", "saml_provider_id": 10} ], ... } ]
您可以通过外部 UID 和提供程序查找用户:
GET /users?extern_uid=:extern_uid&provider=:provider
例如:
GET /users?extern_uid=1234567&provider=github
您可以使用/users?external=true
搜索外部/users?external=true
您可以使用以下创建日期时间范围来搜索用户:
GET /users?created_before=2001-01-02T00:00:00.060Z&created_after=1999-01-02T00:00:00.060
您可以使用/users?without_projects=true
搜索没有项目的/users?without_projects=true
您可以使用以下进行过滤:
GET /users?custom_attributes[key]=value&custom_attributes[other_key]=other_value
您可以通过以下方式在响应中包括用户的自定义属性 :
GET /users?with_custom_attributes=true
Single user
获得一个用户.
GET /users/:id
Parameters:
id
(必填)-用户的 ID
{ "id": 1, "username": "john_smith", "name": "John Smith", "state": "active", "avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg", "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", "bio": null, "bio_html": null, "location": null, "public_email": "john@example.com", "skype": "", "linkedin": "", "twitter": "", "website_url": "", "organization": "", "job_title": "Operations Specialist" }
For admin
GET /users/:id
Parameters:
id
(必填)-用户的 ID
响应示例:
{ "id": 1, "username": "john_smith", "email": "john@example.com", "name": "John Smith", "state": "active", "avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg", "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", "is_admin": false, "bio": null, "bio_html": null, "location": null, "public_email": "john@example.com", "skype": "", "linkedin": "", "twitter": "", "website_url": "", "organization": "", "job_title": "Operations Specialist", "last_sign_in_at": "2012-06-01T11:41:01Z", "confirmed_at": "2012-05-23T09:05:22Z", "theme_id": 1, "last_activity_on": "2012-05-23", "color_scheme_id": 2, "projects_limit": 100, "current_sign_in_at": "2012-06-02T06:36:55Z", "note": "DMCA Request: 2018-11-05 | DMCA Violation | Abuse | https://gitlab.zendesk.com/agent/tickets/123", "identities": [ {"provider": "github", "extern_uid": "2435223452345"}, {"provider": "bitbucket", "extern_uid": "john.smith"}, {"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"} ], "can_create_group": true, "can_create_project": true, "two_factor_enabled": true, "external": false, "private_profile": false, "current_sign_in_ip": "196.165.1.102", "last_sign_in_ip": "172.127.2.22", "plan": "gold", "trial": true }
注意: plan
和trial
参数仅在 GitLab 企业版上可用.
使用 GitLab 还将看到shared_runners_minutes_limit
和extra_shared_runners_minutes_limit
参数.
{ "id": 1, "username": "john_smith", "shared_runners_minutes_limit": 133, "extra_shared_runners_minutes_limit": 133, ... }
GitLab.com Silver 或更高版本上的用户还将看到group_saml
选项:
{ "id": 1, "username": "john_smith", "shared_runners_minutes_limit": 133, "extra_shared_runners_minutes_limit": 133, "identities": [ {"provider": "github", "extern_uid": "2435223452345"}, {"provider": "bitbucket", "extern_uid": "john.smith"}, {"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"}, {"provider": "group_saml", "extern_uid": "123789", "saml_provider_id": 10} ], ... }
您可以通过以下方式在响应中包括用户的 :
GET /users/:id?with_custom_attributes=true
User creation
Creates a new user. Note only administrators can create new users. Either password
, reset_password
, or force_random_password
must be specified. If reset_password
and force_random_password
are both false
, then password
is required.
请注意, force_random_password
和reset_password
优先级高于password
. 此外, reset_password
和force_random_password
可以一起使用.
注意:从 , private_profile
将默认为false
.
POST /users
Parameters:
Attribute | Required | Description |
---|---|---|
admin |
No | 用户是管理员-正确或错误(默认) |
avatar |
No | 用户头像的图像文件 |
bio |
No | 用户的传记 |
can_create_group |
No | 用户可以创建组-正确或错误 |
color_scheme_id |
No | 用户针对文件查看器的配色方案(有关更多信息,请参见用户首选项文档 ) |
email |
Yes | |
extern_uid |
No | 外部 UID |
external |
No | 将用户标记为外部用户-true 或 false(默认) |
extra_shared_runners_minutes_limit |
No | 该用户的额外管道分钟配额(在计划中包括的分钟之外购买) |
force_random_password |
No | 将用户密码设置为随机值-正确或错误(默认) |
group_id_for_saml |
No | 已配置 SAML 的组的 ID |
linkedin |
No | |
location |
No | 用户位置 |
name |
Yes | Name |
note |
No | 该用户的管理说明 |
organization |
No | 机构名称 |
password |
No | Password |
private_profile |
No | 用户的个人资料是私有的-true,false(默认)或 null(将转换为 false) |
projects_limit |
No | 用户可以创建的项目数 |
provider |
No | 外部提供商名称 |
public_email |
No | 用户的公开电子邮件 |
reset_password |
No | 发送用户密码重置链接-正确或错误(默认) |
shared_runners_minutes_limit |
No | 该用户的管道分钟配额(包括在计划中). 可以为nil (默认值;继承系统默认值), 0 (无限制)或> 0 |
skip_confirmation |
No | 跳过确认-正确或错误(默认) |
skype |
No | Skype 帐号 |
theme_id |
No | 用户的 GitLab 主题(有关更多信息,请参见 ) |
twitter |
No | Twitter 账号 |
username |
Yes | Username |
website_url |
No | 网址 |
User modification
修改现有用户. 只有管理员可以更改用户的属性.
PUT /users/:id
Parameters:
Attribute | Required | Description |
---|---|---|
admin |
No | 用户是管理员-正确或错误(默认) |
avatar |
No | 用户头像的图像文件 |
bio |
No | 用户的传记 |
can_create_group |
No | 用户可以创建组-正确或错误 |
color_scheme_id |
No | 用户针对文件查看器的配色方案(有关更多信息,请参见 ) |
No | ||
extern_uid |
No | 外部 UID |
external |
No | 将用户标记为外部用户-true 或 false(默认) |
extra_shared_runners_minutes_limit |
No | 该用户的额外管道分钟配额(在计划中包括的分钟之外购买) |
group_id_for_saml |
No | 已配置 SAML 的组的 ID |
id |
Yes | 用户的 ID |
linkedin |
No | |
location |
No | 用户位置 |
name |
No | Name |
note |
No | 该用户的管理说明 |
organization |
No | 机构名称 |
password |
No | Password |
private_profile |
No | 用户的个人资料是私有的-true,false(默认)或 null(将转换为 false) |
projects_limit |
No | 限制每个用户可以创建的项目 |
provider |
No | 外部提供商名称 |
public_email |
No | 用户的公开电子邮件 |
shared_runners_minutes_limit |
No | 该用户的管道分钟配额(包括在计划中). 可以为nil (默认值;继承系统默认值), 0 (无限制)或> 0 |
skip_reconfirmation |
No | 跳过确认-正确或错误(默认) |
skype |
No | Skype 帐号 |
theme_id |
No | 用户的 GitLab 主题(有关更多信息,请参见用户首选项文档 ) |
twitter |
No | Twitter 账号 |
username |
No | Username |
website_url |
No | 网址 |
密码更新时,用户将被迫在下次登录时进行更改. 请注意,此方法目前仅返回404
错误,即使在409
(冲突)更为合适的情况下也是如此. 例如,将电子邮件地址重命名为某个现有地址时.
Delete authentication identity from user
使用与该身份关联的提供者名称删除用户的身份验证身份. 仅适用于管理员.
DELETE /users/:id/identities/:provider
Parameters:
id
(必填)-用户的 IDprovider
(必填)-外部提供程序名称
User deletion
删除用户. 仅适用于管理员. 如果操作成功,则返回204 No Content
状态代码;如果找不到资源,则返回404
如果无法软删除用户,则返回409
.
DELETE /users/:id
Parameters:
id
(必填)-用户的 IDhard_delete
(可选)-如果为 true,则通常会hard_delete
用户的贡献以及该用户hard_delete
组将被删除.
List current user (for normal users)
获取当前经过身份验证的用户.
GET /user
{ "id": 1, "username": "john_smith", "email": "john@example.com", "name": "John Smith", "state": "active", "avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg", "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", "bio": null, "bio_html": null, "location": null, "public_email": "john@example.com", "skype": "", "linkedin": "", "twitter": "", "website_url": "", "organization": "", "last_sign_in_at": "2012-06-01T11:41:01Z", "confirmed_at": "2012-05-23T09:05:22Z", "theme_id": 1, "last_activity_on": "2012-05-23", "color_scheme_id": 2, "projects_limit": 100, "current_sign_in_at": "2012-06-02T06:36:55Z", "identities": [ {"provider": "github", "extern_uid": "2435223452345"}, {"provider": "bitbucket", "extern_uid": "john_smith"}, {"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"} ], "can_create_group": true, "can_create_project": true, "two_factor_enabled": true, "external": false, "private_profile": false }
List current user (for admins)
Parameters:
sudo
(可选)-在其位置进行呼叫的用户的 ID
GET /user
{ "id": 1, "username": "john_smith", "email": "john@example.com", "name": "John Smith", "state": "active", "avatar_url": "http://localhost:3000/uploads/user/avatar/1/index.jpg", "web_url": "http://localhost:3000/john_smith", "created_at": "2012-05-23T08:00:58Z", "is_admin": false, "bio": null, "bio_html": null, "location": null, "public_email": "john@example.com", "skype": "", "linkedin": "", "twitter": "", "website_url": "", "organization": "", "job_title": "", "last_sign_in_at": "2012-06-01T11:41:01Z", "confirmed_at": "2012-05-23T09:05:22Z", "theme_id": 1, "last_activity_on": "2012-05-23", "color_scheme_id": 2, "projects_limit": 100, "current_sign_in_at": "2012-06-02T06:36:55Z", "identities": [ {"provider": "github", "extern_uid": "2435223452345"}, {"provider": "bitbucket", "extern_uid": "john_smith"}, {"provider": "google_oauth2", "extern_uid": "8776128412476123468721346"} ], "can_create_group": true, "can_create_project": true, "two_factor_enabled": true, "external": false, "private_profile": false, "current_sign_in_ip": "196.165.1.102", "last_sign_in_ip": "172.127.2.22" }
User status
获取当前登录用户的状态.
GET /user/status
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/user/status"
响应示例:
{ "emoji":"coffee", "message":"I crave coffee :coffee:", "message_html": "I crave coffee <gl-emoji title=\"hot beverage\" data-name=\"coffee\" data-unicode-version=\"4.0\">☕</gl-emoji>" }
Get the status of a user
获取用户的状态.
GET /users/:id_or_username/status
Attribute | Type | Required | Description |
---|---|---|---|
id_or_username |
string | yes | 用户的 ID 或用户名,以获取状态 |
curl "https://gitlab.example.com/users/janedoe/status"
响应示例:
Set user status
设置当前用户的状态.
PUT /user/status
Attribute | Type | Required | Description |
---|---|---|---|
emoji |
string | no | 用作状态的表情符号名称. 如果省略,则使用speech_balloon . 表情符号名称可以是Gemojione 索引中指定的名称之一. |
message |
string | no | 设置为状态的消息. 它还可以包含表情符号代码. |
当参数emoji
和message
都为空时,状态将被清除.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --data "emoji=coffee" --data "message=I crave coffee" "https://gitlab.example.com/api/v4/user/status"
回应范例
{ "emoji":"coffee", "message":"I crave coffee", "message_html": "I crave coffee" }
User counts
获取当前登录用户的计数(与右上角菜单相同).
Attribute | Type | Description |
---|---|---|
merge_requests |
number | 合并活动的请求并分配给当前用户. |
GET /user_counts
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/user_counts"
{ "merge_requests": 4 }
List user projects
请参考 .
List SSH keys
获取当前经过身份验证的用户的 SSH 密钥的列表.
GET /user/keys
[ { "id": 1, "title": "Public key", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", "created_at": "2014-08-01T14:47:39.080Z" }, { "id": 3, "title": "Another Public key", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", "created_at": "2014-08-01T14:47:39.080Z" } ]
Parameters:
- none
获取指定用户的 SSH 密钥的列表.
GET /users/:id_or_username/keys
Single SSH key
获取一个密钥.
GET /user/keys/:key_id
Parameters:
key_id
(必填)key_id
密钥的 ID
{ "id": 1, "title": "Public key", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", "created_at": "2014-08-01T14:47:39.080Z" }
Add SSH key
创建当前经过身份验证的用户拥有的新密钥.
POST /user/keys
Parameters:
title
(必填)-新的 SSH 密钥的标题key
(必填)-新的 SSH 密钥expires_at
(可选)-ISO 8601 格式的 SSH 密钥的到期日期(YYYY-MM-DDTHH:MM:SSZ
)
{ "title": "ABC", "key": "ssh-dss AAAAB3NzaC1kc3MAAACBAMLrhYgI3atfrSD6KDas1b/3n6R/HP+bLaHHX6oh+L1vg31mdUqK0Ac/NjZoQunavoyzqdPYhFz9zzOezCrZKjuJDS3NRK9rspvjgM0xYR4d47oNZbdZbwkI4cTv/gcMlquRy0OvpfIvJtjtaJWMwTLtM5VhRusRuUlpH99UUVeXAAAAFQCVyX+92hBEjInEKL0v13c/egDCTQAAAIEAvFdWGq0ccOPbw4f/F8LpZqvWDydAcpXHV3thwb7WkFfppvm4SZte0zds1FJ+Hr8Xzzc5zMHe6J4Nlay/rP4ewmIW7iFKNBEYb/yWa+ceLrs+TfR672TaAgO6o7iSRofEq5YLdwgrwkMmIawa21FrZ2D9SPao/IwvENzk/xcHu7YAAACAQFXQH6HQnxOrw4dqf0NqeKy1tfIPxYYUZhPJfo9O0AmBW2S36pD2l14kS89fvz6Y1g8gN/FwFnRncMzlLY/hX70FSc/3hKBSbH6C6j8hwlgFKfizav21eS358JJz93leOakJZnGb8XlWvz1UJbwCsnR2VEY8Dz90uIk1l/UqHkA= loic@call", "expires_at": "2016-01-21T00:00:00.000Z" }
将返回状态为201 Created
成功的已创建密钥. 如果发生错误,则会返回400 Bad Request
,并附有一条解释该错误的消息:
{ "message": { "fingerprint": [ "has already been taken" ], "key": [ "has already been taken" ] } }
Add SSH key for user
创建指定用户拥有的新密钥. 仅适用于管理员
POST /users/:id/keys
Parameters:
id
(必填)-指定用户的 IDtitle
(必填)-新的 SSH 密钥的标题key
(必填)-新的 SSH 密钥expires_at
(可选)-ISO 8601 格式的 SSH 密钥的到期日期(YYYY-MM-DDTHH:MM:SSZ
)
注意:这还会添加一个审核事件,如审核实例事件中所述 .
Delete SSH key for current user
删除当前经过身份验证的用户拥有的密钥. 如果操作成功,则返回204 No Content
状态代码;如果找不到资源,则返回404
.
DELETE /user/keys/:key_id
Parameters:
key_id
(必填)key_id
密钥 ID
Delete SSH key for given user
删除指定用户拥有的密钥. 仅适用于管理员.
DELETE /users/:id/keys/:key_id
Parameters:
id
(必填)-指定用户的 IDkey_id
(必填)key_id
密钥 ID
List all GPG keys
获取当前已验证用户的 GPG 密钥的列表.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys"
响应示例:
[ { "id": 1, "key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----", "created_at": "2017-09-05T09:17:46.264Z" } ]
Get a specific GPG key
获取当前已认证用户的特定 GPG 密钥.
GET /user/gpg_keys/:key_id
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
key_id |
integer | yes | GPG 密钥的 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys/1"
响应示例:
{ "id": 1, "key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----", "created_at": "2017-09-05T09:17:46.264Z" }
Add a GPG key
创建由当前身份验证用户拥有的新 GPG 密钥.
POST /user/gpg_keys
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
key | string | yes | 新的 GPG 密钥 |
curl --data "key=-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFV..." --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys"
响应示例:
[ { "id": 1, "key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----", "created_at": "2017-09-05T09:17:46.264Z" } ]
Delete a GPG key
删除当前经过身份验证的用户拥有的 GPG 密钥.
DELETE /user/gpg_keys/:key_id
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
key_id |
integer | yes | GPG 密钥的 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys/1"
成功时返回204 No Content
,如果404 Not found
密钥,则返回404 Not found
found.
List all GPG keys for given user
获取指定用户的 GPG 密钥的列表. 仅适用于管理员.
GET /users/:id/gpg_keys
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer | yes | 用户的 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys"
响应示例:
[ { "id": 1, "key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----", "created_at": "2017-09-05T09:17:46.264Z" } ]
Get a specific GPG key for a given user
获取给定用户的特定 GPG 密钥. 仅适用于管理员.
GET /users/:id/gpg_keys/:key_id
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
integer | yes | 用户的 ID | |
key_id |
integer | yes | GPG 密钥的 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys/1"
响应示例:
{ "id": 1, "key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----", "created_at": "2017-09-05T09:17:46.264Z" }
Add a GPG key for a given user
创建指定用户拥有的新 GPG 密钥. 仅适用于管理员.
Parameters:
curl --data "key=-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFV..." --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys"
响应示例:
[ { "id": 1, "key": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n\r\nxsBNBFVjnlIBCACibzXOLCiZiL2oyzYUaTOCkYnSUhymg3pdbfKtd4mpBa58xKBj\r\nt1pTHVpw3Sk03wmzhM/Ndlt1AV2YhLv++83WKr+gAHFYFiCV/tnY8bx3HqvVoy8O\r\nCfxWhw4QZK7+oYzVmJj8ZJm3ZjOC4pzuegNWlNLCUdZDx9OKlHVXLCX1iUbjdYWa\r\nqKV6tdV8hZolkbyjedQgrpvoWyeSHHpwHF7yk4gNJWMMI5rpcssL7i6mMXb/sDzO\r\nVaAtU5wiVducsOa01InRFf7QSTxoAm6Xy0PGv/k48M6xCALa9nY+BzlOv47jUT57\r\nvilf4Szy9dKD0v9S0mQ+IHB+gNukWrnwtXx5ABEBAAHNFm5hbWUgKGNvbW1lbnQp\r\nIDxlbUBpbD7CwHUEEwECACkFAlVjnlIJEINgJNgv009/AhsDAhkBBgsJCAcDAgYV\r\nCAIJCgsEFgIDAQAAxqMIAFBHuBA8P1v8DtHonIK8Lx2qU23t8Mh68HBIkSjk2H7/\r\noO2cDWCw50jZ9D91PXOOyMPvBWV2IE3tARzCvnNGtzEFRtpIEtZ0cuctxeIF1id5\r\ncrfzdMDsmZyRHAOoZ9VtuD6mzj0ybQWMACb7eIHjZDCee3Slh3TVrLy06YRdq2I4\r\nbjMOPePtK5xnIpHGpAXkB3IONxyITpSLKsA4hCeP7gVvm7r7TuQg1ygiUBlWbBYn\r\niE5ROzqZjG1s7dQNZK/riiU2umGqGuwAb2IPvNiyuGR3cIgRE4llXH/rLuUlspAp\r\no4nlxaz65VucmNbN1aMbDXLJVSqR1DuE00vEsL1AItI=\r\n=XQoy\r\n-----END PGP PUBLIC KEY BLOCK-----", "created_at": "2017-09-05T09:17:46.264Z" } ]
Delete a GPG key for a given user
删除指定用户拥有的 GPG 密钥. 仅适用于管理员.
DELETE /users/:id/gpg_keys/:key_id
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer | yes | 用户的 ID |
key_id |
integer | yes | The ID of the GPG key |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys/1"
获取当前经过身份验证的用户电子邮件列表.
GET /user/emails
[ { "id": 1, "email": "email@example.com" }, { "id": 3, "email": "email2@example.com" } ]
Parameters:
- none
List emails for user
获取指定用户的电子邮件列表. 仅适用于管理员
GET /users/:id/emails
Parameters:
id
(必填)-指定用户的 ID
Single email
收到一封电子邮件.
GET /user/emails/:email_id
Parameters:
email_id
(必填)-电子邮件 ID
{ "id": 1, "email": "email@example.com" }
Add email
创建由当前身份验证用户拥有的新电子邮件.
POST /user/emails
Parameters:
email
(必填)-电子邮件地址
{ "id": 4, "email": "email@example.com" }
{ "message": { "email": [ "has already been taken" ] } }
Add email for user
创建指定用户拥有的新电子邮件. 仅适用于管理员
POST /users/:id/emails
Parameters:
id
(必填)-指定用户的 IDemail
(必填)-电子邮件地址skip_confirmation
(可选)-跳过确认并假定电子邮件已通过验证skip_confirmation
或 false(默认)
Delete email for current user
删除当前经过身份验证的用户拥有的电子邮件. 如果操作成功,则返回204 No Content
状态代码;如果找不到资源,则返回404
.
DELETE /user/emails/:email_id
Parameters:
email_id
(必填)-电子邮件 ID
Delete email for given user
删除指定用户拥有的电子邮件. 仅适用于管理员.
DELETE /users/:id/emails/:email_id
Parameters:
id
(必填)-指定用户的 IDemail_id
(必填)-电子邮件 ID
Block user
阻止指定的用户. 仅适用于管理员.
POST /users/:id/block
Parameters:
id
(必填)-指定用户的 ID
Returns:
201 OK
成功成功.404 User Not Found
如果404 User Not Found
用户,则404 User Not Found
用户.403 Forbidden
尝试通过 LDAP 同步阻止已阻止的用户时禁止.
Unblock user
取消阻止指定的用户. 仅适用于管理员.
POST /users/:id/unblock
Parameters:
id
(必填)-指定用户的 ID
尝试取消阻止被 LDAP 同步阻止的用户时,成功返回201 OK
,成功返回404 User Not Found
或403 Forbidden
.
Deactivate user
在 GitLab 12.4 中引入 .
停用指定的用户. 仅适用于管理员.
POST /users/:id/deactivate
Parameters:
id
(必填)-指定用户的 ID
Returns:
201 OK
成功成功.404 User Not Found
如果404 User Not Found
用户,则404 User Not Found
用户.403 Forbidden
尝试停用用户时被禁止:- 被管理员或 LDAP 同步阻止.
- 在过去 180 天内没有任何活动. 这些用户无法停用.
Activate user
在 GitLab 12.4 中引入 .
激活指定的用户. 仅适用于管理员.
POST /users/:id/activate
Parameters:
id
(必填)-指定用户的 ID
Returns:
201 OK
成功成功.404 User Not Found
如果404 User Not Found
用户,则404 User Not Found
用户.403 Forbidden
尝试激活被管理员或 LDAP 同步阻止的用户时禁止.
请参阅
Get all impersonation tokens of a user
它检索用户的每个模拟令牌. 使用分页参数page
和per_page
可以限制模拟令牌的列表.
GET /users/:user_id/impersonation_tokens
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
user_id |
integer | yes | 用户的 ID |
state |
string | no | 根据状态( all , active , inactive )过滤令牌 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"
响应示例:
[ { "active" : true, "scopes" : [ "api" ], "revoked" : false, "name" : "mytoken", "id" : 2, "created_at" : "2017-03-17T17:18:09.283Z", "impersonation" : true, "expires_at" : "2017-04-04" }, { "active" : false, "scopes" : [ "read_user" ], "revoked" : true, "name" : "mytoken2", "created_at" : "2017-03-17T17:19:28.697Z", "id" : 3, "impersonation" : true, "expires_at" : "2017-04-14" } ]
Get an impersonation token of a user
它显示了用户的模拟令牌.
GET /users/:user_id/impersonation_tokens/:impersonation_token_id
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
user_id |
integer | yes | 用户的 ID |
impersonation_token_id |
integer | yes | 模拟令牌的 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/2"
响应示例:
{ "active" : true, "scopes" : [ "api" ], "revoked" : false, "name" : "mytoken", "id" : 2, "created_at" : "2017-03-17T17:18:09.283Z", "impersonation" : true, "expires_at" : "2017-04-04" }
Create an impersonation token
它创建一个新的模拟令牌. 请注意,只有管理员可以执行此操作. 您只能创建模拟令牌来模拟用户,并执行 API 调用和 Git 读写. 用户将不会在其个人资料设置页面中看到这些令牌.
POST /users/:user_id/impersonation_tokens
Attribute | Type | Required | Description |
---|---|---|---|
user_id |
integer | yes | 用户的 ID |
name |
string | yes | 模拟令牌的名称 |
expires_at |
date | no | ISO 格式( YYYY-MM-DD )的模拟令牌的到期日期 |
scopes |
array | yes | 模拟令牌作用域的数组( api , read_user ) |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "expires_at=2017-04-04" --data "scopes[]=api" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"
响应示例:
{ "id" : 2, "revoked" : false, "scopes" : [ "api" ], "token" : "EsMo-vhKfXGwX9RKrwiy", "active" : true, "impersonation" : true, "name" : "mytoken", "created_at" : "2017-03-17T17:18:09.283Z", "expires_at" : "2017-04-04" }
它撤销模拟令牌.
DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/1"
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
user_id |
integer | yes | 用户的 ID |
impersonation_token_id |
integer | yes | 模拟令牌的 ID |
Get user activities (admin only)
注意:此 API 端点仅在 8.15(EE)和 9.1(CE)及更高版本上可用.
获取所有用户的上次活动日期,从最旧到最新.
更新时间戳记的活动是:
- Git HTTP / SSH 活动(例如克隆,推送)
- 用户登录 GitLab
- 与仪表板,项目,问题和合并请求相关的用户访问页面(在 GitLab 11.8 中引入 )
- 用户使用 API
- 用户使用 GraphQL API
默认情况下,它显示最近 6 个月内所有用户的活动,但是可以使用from
参数进行修改.
GET /user/activities
Parameters:
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/activities"
响应示例:
[ { "username": "user1", "last_activity_on": "2015-12-14", "last_activity_at": "2015-12-14" }, { "username": "user2", "last_activity_on": "2015-12-15", "last_activity_at": "2015-12-15" }, { "username": "user3", "last_activity_on": "2015-12-16", "last_activity_at": "2015-12-16" } ]
请注意, last_activity_at
已过时,请使用last_activity_on
.
User memberships (admin only)
在 GitLab 12.8 中引入 .
列出用户所属的所有项目和组. 该端点仅适用于管理员. 它返回成员资格的source_id
, source_name
, source_type
和access_level
. 源可以是Namespace
(代表一个组)或Project
. 响应仅代表直接成员身份. 不包括继承的成员资格,例如在子组中. 访问级别由整数值表示. 有关更多详细信息,请阅读有关的含义.
GET /users/:id/memberships
Parameters:
Attribute | Type | Required | Description |
---|---|---|---|
id |
integer | yes | 指定用户的 ID |
type |
string | no | 按类型过滤成员资格. 可以是Project 或Namespace |
Returns:
200 OK
成功.404 User Not Found
if user can’t be found.403 Forbidden
管理员未要求时禁止.- 不支持请求的类型时出现
400 Bad Request
.