Users API

原文:https://docs.gitlab.com/ee/api/users.html

Users API

List users

活动用户=帐户总数-被阻止的用户

获取用户列表.

此函数使用分页参数pageper_page来限制用户列表.

For normal users

  1. GET /users
  1. [ { "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 .

另外,您可以按用户名查找用户:

  1. GET /users?username=:username

例如:

  1. GET /users?username=jack_smith

另外,您可以根据状态过滤用户,例如. blockedactive此选项仅用于过滤被blockedactive用户. 它不支持active=falseblocked=false .

  1. GET /users?active=true
  1. GET /users?blocked=true

注意:用户名搜索不区分大小写.

For admins

  1. GET /users
Attribute Type Required Description
order_by string no 返回按idnameusernamecreated_atupdated_at字段排序的username . 默认为id
sort string no 返回用户按ascdesc排列. 默认为desc
two_factor string no 通过两因素身份验证过滤用户. enableddisabled过滤器值. 默认情况下,它返回所有用户
without_projects boolean no 过滤没有项目的用户. 默认为false
  1. [ { "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 Starter,Bronze 或更高版本的用户还将看到shared_runners_minutes_limitextra_shared_runners_minutes_limit参数.

  1. [ { "id": 1, ... "shared_runners_minutes_limit": 133, "extra_shared_runners_minutes_limit": 133, ... } ]

使用 GitLab Silver 或更高版本的用户还将看到group_saml提供程序选项:

  1. [ { "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 和提供程序查找用户:

  1. GET /users?extern_uid=:extern_uid&provider=:provider

例如:

  1. GET /users?extern_uid=1234567&provider=github

您可以使用/users?external=true搜索外部/users?external=true

您可以使用以下创建日期时间范围来搜索用户:

  1. 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

您可以使用以下自定义属性进行过滤:

  1. GET /users?custom_attributes[key]=value&custom_attributes[other_key]=other_value

您可以通过以下方式在响应中包括用户的自定义属性

  1. GET /users?with_custom_attributes=true

Single user

获得一个用户.

For user

  1. GET /users/:id

Parameters:

  • id (必填)-用户的 ID
  1. { "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

  1. GET /users/:id

Parameters:

  • id (必填)-用户的 ID

响应示例:

  1. { "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 }

注意: plantrial参数仅在 GitLab 企业版上可用.

使用 GitLab Starter,Bronze 或更高版本的用户还将看到shared_runners_minutes_limitextra_shared_runners_minutes_limit参数.

  1. { "id": 1, "username": "john_smith", "shared_runners_minutes_limit": 133, "extra_shared_runners_minutes_limit": 133, ... }

GitLab.com Silver 或更高版本上的用户还将看到group_saml选项:

  1. { "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} ], ... }

您可以通过以下方式在响应中包括用户的自定义属性

  1. 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_passwordreset_password优先级高于password . 此外, reset_passwordforce_random_password可以一起使用.

注意:GitLab 12.1 开始private_profile将默认为false .

  1. POST /users

Parameters:

Attribute Required Description
admin No 用户是管理员-正确或错误(默认)
avatar No 用户头像的图像文件
bio No 用户的传记
can_create_group No 用户可以创建组-正确或错误
color_scheme_id No 用户针对文件查看器的配色方案(有关更多信息,请参见用户首选项文档
email Yes Email
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 LinkedIn
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

修改现有用户. 只有管​​理员可以更改用户的属性.

  1. PUT /users/:id

Parameters:

Attribute Required Description
admin No 用户是管理员-正确或错误(默认)
avatar No 用户头像的图像文件
bio No 用户的传记
can_create_group No 用户可以创建组-正确或错误
color_scheme_id No 用户针对文件查看器的配色方案(有关更多信息,请参见用户首选项文档
email No Email
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 LinkedIn
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

使用与该身份关联的提供者名称删除用户的身份验证身份. 仅适用于管理员.

  1. DELETE /users/:id/identities/:provider

Parameters:

  • id (必填)-用户的 ID
  • provider (必填)-外部提供程序名称

User deletion

删除用户. 仅适用于管理员. 如果操作成功,则返回204 No Content状态代码;如果找不到资源,则返回404如果无法软删除用户,则返回409 .

  1. DELETE /users/:id

Parameters:

  • id (必填)-用户的 ID
  • hard_delete (可选)-如果为 true,则通常会移至 hard_delete 用户的贡献以及该用户hard_delete组将被删除.

List current user (for normal users)

获取当前经过身份验证的用户.

  1. GET /user
  1. { "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
  1. GET /user
  1. { "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

获取当前登录用户的状态.

  1. GET /user/status
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/user/status"

响应示例:

  1. { "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

获取用户的状态.

  1. GET /users/:id_or_username/status
Attribute Type Required Description
id_or_username string yes 用户的 ID 或用户名,以获取状态
  1. curl "https://gitlab.example.com/users/janedoe/status"

响应示例:

  1. { "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>" }

Set user status

设置当前用户的状态.

  1. PUT /user/status
Attribute Type Required Description
emoji string no 用作状态的表情符号名称. 如果省略,则使用speech_balloon . 表情符号名称可以是Gemojione 索引中指定的名称之一.
message string no 设置为状态的消息. 它还可以包含表情符号代码.

当参数emojimessage都为空时,状态将被清除.

  1. 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"

回应范例

  1. { "emoji":"coffee", "message":"I crave coffee", "message_html": "I crave coffee" }

User counts

获取当前登录用户的计数(与右上角菜单相同).

Attribute Type Description
merge_requests number 合并活动的请求并分配给当前用户.
  1. GET /user_counts
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/user_counts"

响应示例:

  1. { "merge_requests": 4 }

List user projects

请参考用户项目列表 .

List SSH keys

获取当前经过身份验证的用户的 SSH 密钥的列表.

  1. GET /user/keys
  1. [ { "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

List SSH keys for user

获取指定用户的 SSH 密钥的列表.

  1. GET /users/:id_or_username/keys
Attribute Type Required Description
id_or_username string yes 要为其获取 SSH 密钥的用户的 ID 或用户名.

Single SSH key

获取一个密钥.

  1. GET /user/keys/:key_id

Parameters:

  • key_id (必填) key_id密钥的 ID
  1. { "id": 1, "title": "Public key", "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", "created_at": "2014-08-01T14:47:39.080Z" }

Add SSH key

创建当前经过身份验证的用户拥有的新密钥.

  1. POST /user/keys

Parameters:

  • title (必填)-新的 SSH 密钥的标题
  • key (必填)-新的 SSH 密钥
  • expires_at (可选)-ISO 8601 格式的 SSH 密钥的到期日期( YYYY-MM-DDTHH:MM:SSZ
  1. { "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 ,并附有一条解释该错误的消息:

  1. { "message": { "fingerprint": [ "has already been taken" ], "key": [ "has already been taken" ] } }

Add SSH key for user

创建指定用户拥有的新密钥. 仅适用于管理员

  1. POST /users/:id/keys

Parameters:

  • id (必填)-指定用户的 ID
  • title (必填)-新的 SSH 密钥的标题
  • key (必填)-新的 SSH 密钥
  • expires_at (可选)-ISO 8601 格式的 SSH 密钥的到期日期( YYYY-MM-DDTHH:MM:SSZ

注意:这还会添加一个审核事件,如审核实例事件中所述 .

Delete SSH key for current user

删除当前经过身份验证的用户拥有的密钥. 如果操作成功,则返回204 No Content状态代码;如果找不到资源,则返回404 .

  1. DELETE /user/keys/:key_id

Parameters:

  • key_id (必填) key_id密钥 ID

Delete SSH key for given user

删除指定用户拥有的密钥. 仅适用于管理员.

  1. DELETE /users/:id/keys/:key_id

Parameters:

  • id (必填)-指定用户的 ID
  • key_id (必填) key_id密钥 ID

List all GPG keys

获取当前已验证用户的 GPG 密钥的列表.

  1. GET /user/gpg_keys
  1. 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" } ]

Get a specific GPG key

获取当前已认证用户的特定 GPG 密钥.

  1. GET /user/gpg_keys/:key_id

Parameters:

Attribute Type Required Description
key_id integer yes GPG 密钥的 ID
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys/1"

响应示例:

  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 密钥.

  1. POST /user/gpg_keys

Parameters:

Attribute Type Required Description
key string yes 新的 GPG 密钥
  1. 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"

响应示例:

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

Delete a GPG key

删除当前经过身份验证的用户拥有的 GPG 密钥.

  1. DELETE /user/gpg_keys/:key_id

Parameters:

Attribute Type Required Description
key_id integer yes GPG 密钥的 ID
  1. 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 密钥的列表. 仅适用于管理员.

  1. GET /users/:id/gpg_keys

Parameters:

Attribute Type Required Description
id integer yes 用户的 ID
  1. 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" } ]

Get a specific GPG key for a given user

获取给定用户的特定 GPG 密钥. 仅适用于管理员.

  1. GET /users/:id/gpg_keys/:key_id

Parameters:

Attribute Type Required Description
id integer yes 用户的 ID
key_id integer yes GPG 密钥的 ID
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys/1"

响应示例:

  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 密钥. 仅适用于管理员.

  1. POST /users/:id/gpg_keys

Parameters:

Attribute Type Required Description
id integer yes 用户的 ID
key_id integer yes GPG 密钥的 ID
  1. 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"

响应示例:

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

Delete a GPG key for a given user

删除指定用户拥有的 GPG 密钥. 仅适用于管理员.

  1. 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
  1. curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys/1"

List emails

获取当前经过身份验证的用户电子邮件列表.

  1. GET /user/emails
  1. [ { "id": 1, "email": "email@example.com" }, { "id": 3, "email": "email2@example.com" } ]

Parameters:

  • none

List emails for user

获取指定用户的电子邮件列表. 仅适用于管理员

  1. GET /users/:id/emails

Parameters:

  • id (必填)-指定用户的 ID

Single email

收到一封电子邮件.

  1. GET /user/emails/:email_id

Parameters:

  • email_id (必填)-电子邮件 ID
  1. { "id": 1, "email": "email@example.com" }

Add email

创建由当前身份验证用户拥有的新电子邮件.

  1. POST /user/emails

Parameters:

  • email (必填)-电子邮件地址
  1. { "id": 4, "email": "email@example.com" }

将返回状态为201 Created成功的已创建电子邮件. 如果发生错误,则会返回400 Bad Request ,并附有一条解释该错误的消息:

  1. { "message": { "email": [ "has already been taken" ] } }

Add email for user

创建指定用户拥有的新电子邮件. 仅适用于管理员

  1. POST /users/:id/emails

Parameters:

  • id (必填)-指定用户的 ID
  • email (必填)-电子邮件地址
  • skip_confirmation (可选)-跳过确认并假定电子邮件已通过验证skip_confirmation或 false(默认)

Delete email for current user

删除当前经过身份验证的用户拥有的电子邮件. 如果操作成功,则返回204 No Content状态代码;如果找不到资源,则返回404 .

  1. DELETE /user/emails/:email_id

Parameters:

  • email_id (必填)-电子邮件 ID

Delete email for given user

删除指定用户拥有的电子邮件. 仅适用于管理员.

  1. DELETE /users/:id/emails/:email_id

Parameters:

  • id (必填)-指定用户的 ID
  • email_id (必填)-电子邮件 ID

Block user

阻止指定的用户. 仅适用于管理员.

  1. 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

取消阻止指定的用户. 仅适用于管理员.

  1. POST /users/:id/unblock

Parameters:

  • id (必填)-指定用户的 ID

尝试取消阻止被 LDAP 同步阻止的用户时,成功返回201 OK ,成功返回404 User Not Found403 Forbidden .

Deactivate user

在 GitLab 12.4 中引入 .

停用指定的用户. 仅适用于管理员.

  1. 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 中引入 .

激活指定的用户. 仅适用于管理员.

  1. 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 user contribution events

请参阅事件 API 文档

Get all impersonation tokens of a user

需要管理员权限.

它检索用户的每个模拟令牌. 使用分页参数pageper_page可以限制模拟令牌的列表.

  1. GET /users/:user_id/impersonation_tokens

Parameters:

Attribute Type Required Description
user_id integer yes 用户的 ID
state string no 根据状态( allactiveinactive )过滤令牌
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"

响应示例:

  1. [ { "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

需要管理员权限.

它显示了用户的模拟令牌.

  1. 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
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/2"

响应示例:

  1. { "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 读写. 用户将不会在其个人资料设置页面中看到这些令牌.

  1. 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 模拟令牌作用域的数组( apiread_user
  1. 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"

响应示例:

  1. { "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" }

Revoke an impersonation token

需要管理员权限.

它撤销模拟令牌.

  1. DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id
  1. 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参数进行修改.

  1. GET /user/activities

Parameters:

Attribute Type Required Description
from string no 日期字符串,格式为 YEAR-MONTH-DAY. 例如, 2016-03-11 . 默认为 6 个月前.
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/activities"

响应示例:

  1. [ { "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_idsource_namesource_typeaccess_level . 源可以是Namespace (代表一个组)或Project . 响应仅代表直接成员身份. 不包括继承的成员资格,例如在子组中. 访问级别由整数值表示. 有关更多详细信息,请阅读有关访问级别值的含义.

  1. GET /users/:id/memberships

Parameters:

Attribute Type Required Description
id integer yes 指定用户的 ID
type string no 按类型过滤成员资格. 可以是ProjectNamespace

Returns:

  • 200 OK成功.
  • 404 User Not Found if user can’t be found.
  • 403 Forbidden管理员未要求时禁止.
  • 不支持请求的类型时出现400 Bad Request .
  1. curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/:user_id/memberships"

响应示例:

  1. [ { "source_id": 1, "source_name": "Project one", "source_type": "Project", "access_level": "20" }, { "source_id": 3, "source_name": "Group three", "source_type": "Namespace", "access_level": "20" }, ]