这篇文章介绍一下在Gitlab中通过API修改邮箱不成功的对应方法。
现象说明
使用API修改邮箱(字段为email),返回信息正常,但是结果中仍为之前邮箱信息。
原因与对应方法
版本说明
本文memo的内容为Gitlab的Api为v4版本的情况
环境准备
环境的准备以及token等信息的设定可参看下文:
问题再现
测试用户准备
准备如下用户信息(liumiao/12341234), 执行日志如下所示:
liumiaocn:api liumiao$ curl -X POST -H "PRIVATE-TOKEN: ${access_token}" http://${gitlab_url}/api/v4/users \
> -H 'cache-control: no-cache' \
> -H 'content-type: application/json' \
> -d '{ "email": "liumiaocn@outlook.com",
> "username": "liumiaocn",
> "password": "12341234",
> "name": "liumiaocn",
> "skip_confirmation": "true"
> }' |jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 833 100 690 100 143 1751 362 --:--:-- --:--:-- --:--:-- 2114
{
"id": 2,
"name": "liumiaocn",
"username": "liumiaocn",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/95c1f7ff72d71b448592a335ba80fb64?s=80&d=identicon",
"web_url": "http://fb1429a3b28c/liumiaocn",
"created_at": "2020-07-30T23:20:49.710Z",
"bio": null,
"location": null,
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": null,
"last_sign_in_at": null,
"confirmed_at": "2020-07-30T23:20:49.650Z",
"last_activity_on": null,
"email": "liumiaocn@outlook.com",
"theme_id": 1,
"color_scheme_id": 1,
"projects_limit": 100000,
"current_sign_in_at": null,
"identities": [],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": false,
"external": false,
"private_profile": null
}
liumiaocn:api liumiao$
登录确认此用户的邮箱地址
修改用户邮箱
将用户邮箱从liumiaocn@outlook.com修改为liumiao123@outlook.com
liumiaocn:api liumiao$ userid=2
liumiaocn:api liumiao$ curl -X PUT -H "PRIVATE-TOKEN: ${access_token}" http://${gitlab_url}/api/v4/users/${userid} \
> -H 'cache-control: no-cache' \
> -H '