您当前的位置: 首页 >  git

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Gitlab: 用户增删改查(API方式)

发布时间:2020-07-19 18:58:05 ,浏览量:0

在这里插入图片描述 Gitlab中提供了Rest方式进行用户的增删改查操作,这篇文章对相关内容通过示例进行说明。

环境准备 docker-compose文件
liumiaocn:gitlab liumiao$ cat docker-compose.yml version: '2' services: # Version Control service: Gitlab gitlab: image: gitlab/gitlab-ce:12.10.5-ce.0 ports: - "32001:80" volumes: - ./log/:/var/log/gitlab - ./data/:/var/opt/gitlab - ./conf/:/etc/gitlab restart: "no" liumiaocn:gitlab liumiao$
事前准备

创建如下目录:

liumiaocn:gitlab liumiao$ ls
docker-compose.yml
liumiaocn:gitlab liumiao$ mkdir -p log data conf
liumiaocn:gitlab liumiao$ ls
conf			data			docker-compose.yml	log
liumiaocn:gitlab liumiao$
启动

启动命令:docker-compose up -d

登录并创建apitoken 登录URL
  • http://localhost:32001

在这里插入图片描述 注:此处设定root用户密码,由于后续直接使用token进行用户创建,示例说明中不再直接需要使用root设定的密码。

创建api用的token

通过settings菜单或者直接使用如下URL,创建api用的token

  • http://localhost:32001/profile/personal_access_tokens

在这里插入图片描述

操作:添加用户

执行命令 access_token=“7F2jdsYyeDsuhGnyTvPz” gitlab_url=“localhost:32001” 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”: “liumiao”, “password”: “12341234”, “name”: “liumiao”, “skip_confirmation”: “true” }’

执行日志示例:

liumiaocn:gitlab 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": "liumiao",
  "password": "12341234",
  "name": "liumiao",
  "skip_confirmation": "true"
}' |jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   898  100   759  100   139   1581    289 --:--:-- --:--:-- --:--:--  1870
{
  "id": 2,
  "name": "liumiao",
  "username": "liumiao",
  "state": "active",
  "avatar_url": "https://www.gravatar.com/avatar/95c1f7ff72d71b448592a335ba80fb64?s=80&d=identicon",
  "web_url": "http://174e7227bacf/liumiao",
  "created_at": "2020-07-19T10:27:23.468Z",
  "bio": null,
  "location": null,
  "public_email": "",
  "skype": "",
  "linkedin": "",
  "twitter": "",
  "website_url": "",
  "organization": null,
  "job_title": "",
  "work_information": null,
  "last_sign_in_at": null,
  "confirmed_at": "2020-07-19T10:27:23.309Z",
  "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": false,
  "is_admin": false
}
liumiaocn:gitlab liumiao$

关于添加用户时的相应选项说明可参看:https://liumiaocn.blog.csdn.net/article/details/107441384

操作:查询所有用户

执行命令 curl -X GET -H “PRIVATE-TOKEN: ${access_token}” http://${gitlab_url}/api/v4/users

执行日志示例:

liumiaocn:gitlab liumiao$ curl -X GET -H "PRIVATE-TOKEN: ${access_token}" http://${gitlab_url}/api/v4/users |jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1568  100  1568    0     0  14126      0 --:--:-- --:--:-- --:--:-- 14126
[
  {
    "id": 2,
    "name": "liumiao",
    "username": "liumiao",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/95c1f7ff72d71b448592a335ba80fb64?s=80&d=identicon",
    "web_url": "http://174e7227bacf/liumiao",
    "created_at": "2020-07-19T10:27:23.468Z",
    "bio": null,
    "location": null,
    "public_email": "",
    "skype": "",
    "linkedin": "",
    "twitter": "",
    "website_url": "",
    "organization": null,
    "job_title": "",
    "work_information": null,
    "last_sign_in_at": null,
    "confirmed_at": "2020-07-19T10:27:23.309Z",
    "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": false,
    "is_admin": false
  },
  {
    "id": 1,
    "name": "Administrator",
    "username": "root",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
    "web_url": "http://174e7227bacf/root",
    "created_at": "2020-07-19T10:24:30.088Z",
    "bio": null,
    "location": null,
    "public_email": "",
    "skype": "",
    "linkedin": "",
    "twitter": "",
    "website_url": "",
    "organization": null,
    "job_title": "",
    "work_information": null,
    "last_sign_in_at": "2020-07-19T10:26:34.687Z",
    "confirmed_at": "2020-07-19T10:24:29.510Z",
    "last_activity_on": "2020-07-19",
    "email": "admin@example.com",
    "theme_id": 1,
    "color_scheme_id": 1,
    "projects_limit": 100000,
    "current_sign_in_at": "2020-07-19T10:26:34.687Z",
    "identities": [],
    "can_create_group": true,
    "can_create_project": true,
    "two_factor_enabled": false,
    "external": false,
    "private_profile": false,
    "is_admin": true
  }
]
liumiaocn:gitlab liumiao$
操作:查询单个用户

指定某一参数进行查询,比如此处使用username进行查询

liumiaocn:gitlab liumiao$ curl -X GET -H "PRIVATE-TOKEN: ${access_token}" http://${gitlab_url}/api/v4/users?username=liumiao |jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   761  100   761    0     0   8952      0 --:--:-- --:--:-- --:--:--  8952
[
  {
    "id": 2,
    "name": "liumiao",
    "username": "liumiao",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/95c1f7ff72d71b448592a335ba80fb64?s=80&d=identicon",
    "web_url": "http://174e7227bacf/liumiao",
    "created_at": "2020-07-19T10:27:23.468Z",
    "bio": null,
    "location": null,
    "public_email": "",
    "skype": "",
    "linkedin": "",
    "twitter": "",
    "website_url": "",
    "organization": null,
    "job_title": "",
    "work_information": null,
    "last_sign_in_at": null,
    "confirmed_at": "2020-07-19T10:27:23.309Z",
    "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": false,
    "is_admin": false
  }
]
liumiaocn:gitlab liumiao$
操作:修改用户信息

比如这里使用PUT方法修改用户的密码信息,执行示例日志如下所示:

liumiaocn:gitlab liumiao$ curl -X PUT -H "PRIVATE-TOKEN: ${access_token}" http://${gitlab_url}/api/v4/users/${userid} \
>   -H 'cache-control: no-cache' \
>   -H 'content-type: application/json' \
>   -d '{ "password": "1234512345"}'
{"id":2,"name":"liumiao","username":"liumiao","state":"active","avatar_url":"https://www.gravatar.com/avatar/95c1f7ff72d71b448592a335ba80fb64?s=80\u0026d=identicon","web_url":"http://174e7227bacf/liumiao","created_at":"2020-07-19T10:27:23.468Z","bio":null,"location":null,"public_email":"","skype":"","linkedin":"","twitter":"","website_url":"","organization":null,"job_title":"","work_information":null,"last_sign_in_at":"2020-07-19T10:31:43.193Z","confirmed_at":"2020-07-19T10:27:23.309Z","last_activity_on":"2020-07-19","email":"liumiaocn@outlook.com","theme_id":1,"color_scheme_id":1,"projects_limit":100000,"current_sign_in_at":"2020-07-19T10:31:43.193Z","identities":[],"can_create_group":true,"can_create_project":true,"two_factor_enabled":false,"external":false,"private_profile":false,"is_admin":false}liumiaocn:gitlab liumiao$

使用修改后的密码登录(1234512345),可以成功登录,提示修改密码 在这里插入图片描述

操作:删除用户 删除前所有用户查询
liumiaocn:gitlab liumiao$ curl -X GET -H "PRIVATE-TOKEN: ${access_token}" http://${gitlab_url}/api/v4/users |jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1620  100  1620    0     0  18409      0 --:--:-- --:--:-- --:--:-- 18409
[
  {
    "id": 2,
    "name": "liumiao",
    "username": "liumiao",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/95c1f7ff72d71b448592a335ba80fb64?s=80&d=identicon",
    "web_url": "http://174e7227bacf/liumiao",
    "created_at": "2020-07-19T10:27:23.468Z",
    "bio": null,
    "location": null,
    "public_email": "",
    "skype": "",
    "linkedin": "",
    "twitter": "",
    "website_url": "",
    "organization": null,
    "job_title": "",
    "work_information": null,
    "last_sign_in_at": "2020-07-19T10:31:43.193Z",
    "confirmed_at": "2020-07-19T10:27:23.309Z",
    "last_activity_on": "2020-07-19",
    "email": "liumiaocn@outlook.com",
    "theme_id": 1,
    "color_scheme_id": 1,
    "projects_limit": 100000,
    "current_sign_in_at": "2020-07-19T10:31:43.193Z",
    "identities": [],
    "can_create_group": true,
    "can_create_project": true,
    "two_factor_enabled": false,
    "external": false,
    "private_profile": false,
    "is_admin": false
  },
  {
    "id": 1,
    "name": "Administrator",
    "username": "root",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
    "web_url": "http://174e7227bacf/root",
    "created_at": "2020-07-19T10:24:30.088Z",
    "bio": null,
    "location": null,
    "public_email": "",
    "skype": "",
    "linkedin": "",
    "twitter": "",
    "website_url": "",
    "organization": null,
    "job_title": "",
    "work_information": null,
    "last_sign_in_at": "2020-07-19T10:26:34.687Z",
    "confirmed_at": "2020-07-19T10:24:29.510Z",
    "last_activity_on": "2020-07-19",
    "email": "admin@example.com",
    "theme_id": 1,
    "color_scheme_id": 1,
    "projects_limit": 100000,
    "current_sign_in_at": "2020-07-19T10:26:34.687Z",
    "identities": [],
    "can_create_group": true,
    "can_create_project": true,
    "two_factor_enabled": false,
    "external": false,
    "private_profile": false,
    "is_admin": true
  }
]
liumiaocn:gitlab liumiao$
删除用户liumiao
liumiaocn:gitlab liumiao$ userid=2
liumiaocn:gitlab liumiao$ curl -X DELETE -H "PRIVATE-TOKEN: ${access_token}" http://${gitlab_url}/api/v4/users/${userid}?hard_delete=true
liumiaocn:gitlab liumiao$ echo $?
0
liumiaocn:gitlab liumiao$
删除后所有用户查询
liumiaocn:gitlab liumiao$ curl -X GET -H "PRIVATE-TOKEN: ${access_token}" http://${gitlab_url}/api/v4/users |jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   808  100   808    0     0  10100      0 --:--:-- --:--:-- --:--:-- 10100
[
  {
    "id": 1,
    "name": "Administrator",
    "username": "root",
    "state": "active",
    "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
    "web_url": "http://174e7227bacf/root",
    "created_at": "2020-07-19T10:24:30.088Z",
    "bio": null,
    "location": null,
    "public_email": "",
    "skype": "",
    "linkedin": "",
    "twitter": "",
    "website_url": "",
    "organization": null,
    "job_title": "",
    "work_information": null,
    "last_sign_in_at": "2020-07-19T10:26:34.687Z",
    "confirmed_at": "2020-07-19T10:24:29.510Z",
    "last_activity_on": "2020-07-19",
    "email": "admin@example.com",
    "theme_id": 1,
    "color_scheme_id": 1,
    "projects_limit": 100000,
    "current_sign_in_at": "2020-07-19T10:26:34.687Z",
    "identities": [],
    "can_create_group": true,
    "can_create_project": true,
    "two_factor_enabled": false,
    "external": false,
    "private_profile": false,
    "is_admin": true
  }
]
liumiaocn:gitlab liumiao$

更为详细的删除说明可参看:https://liumiaocn.blog.csdn.net/article/details/107443377

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.6757s