如何使用Gitlab API进行用户创建,删除,查询,看这篇文章就够了

写在前面

  • 我使用的Gitlab版本为15.3.1,以下所有操作都是基于这个版本,如果版本有差异,可能涉及的api会有不同
  • 服务器配置为:4核16G
  • 实现语言:java

项目需求

  • 公司要求Gitlab对接OA系统中的流程控制,当有用户需要创建时,可以通过OA系统提交流程进行审批,审批通过之后,OA系统会通过调用Gitlab的API 进行用户创建,不需要人工创建,节约人力,节省时间

创建PRIVATE TOKEN

  1. 登录Gitlab
  2. 点击用户
    在这里插入图片描述
  3. 点击编辑
    在这里插入图片描述
  4. 创建access token
    在这里插入图片描述

创建用户

Gitlab API 调用路径

https://ip:port/api/v4/users

API调用代码实现

public static boolean createUser(String username,String name,String email){
        try {
            CloseableHttpClient httpclients = HttpClients.createDefault();
            HttpPost httpPost = new HttpPost(USER_CREATE_GET_API);
            List<NameValuePair> pairs = new ArrayList<>();
            //private_token为上面生成的值
            pairs.add(new BasicNameValuePair("private_token","替换成你的private_toke"));
            pairs.add(new BasicNameValuePair("username",username));
            pairs.add(new BasicNameValuePair("name",name));
            pairs.add(new BasicNameValuePair("email",email));
            pairs.add(new BasicNameValuePair("reset_password","true"));
            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(pairs,"UTF-8");
            httpPost.setEntity(formEntity);
            CloseableHttpResponse response = httpclients.execute(httpPost);
            HttpEntity httpEntity = response.getEntity();
            String result =  EntityUtils.toString(httpEntity,"UTF-8");
            JSONObject jsonObject = JSON.parseObject(result);
            System.err.println(result);
            if(jsonObject.containsKey("message")){
                return false;
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return true;
    }

删除用户

Gitlab API 调用路径

https://ip:port/api/v4/users/用户创建时生成的id

API调用代码实现

  • 输入参数说明
    userId:用户创建时生成的id
    isHardDelete: 非必须,如果为true,则通常移至 Ghost 用户的贡献以及由该用户单独拥有的群组将被删除
    可参考以下链接进行查看
    https://docs.gitlab.com/ee/api/users.html#user-deletion
  • java代码实现
public static boolean deleteUser(int userId,boolean isHardDelete){
        try {
            if(userId <= 0){
                return false;
            }
            CloseableHttpClient httpclients = HttpClients.createDefault();
            HttpDelete httpDelete = new HttpDelete(USER_CREATE_GET_API + "/" + userId);
            // 设置参数信息
            URI uri = new URIBuilder(httpDelete.getURI())
            		//private_token为上面生成的值
                    .addParameter("private_token", "替换成你的private_token")
                    .build();
            httpDelete.setURI(uri);
            // 发起请求
            CloseableHttpResponse response = httpclients.execute(httpDelete);
            // 处理数据
            HttpEntity httpEntity = response.getEntity();
            String s = EntityUtils.toString(httpEntity);
            System.err.println(s);
        }catch (Exception e){
            e.printStackTrace();
        }
        return true;
    }

获取所有用户列表

Gitlab API 调用路径

https://ip:port/api/v4/users

API调用代码实现

 public static JSONArray getAllUsers(){
        try {
            CloseableHttpClient httpclients = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(USER_CREATE_GET_API);
            // 设置参数信息
            URI uri = new URIBuilder(httpGet.getURI())
            		//private_token为上面生成的值
                    .addParameter("private_token", "替换成你的private_toke")
                    .addParameter("without_project_bots", "true")
                    .build();
            httpGet.setURI(uri);
            // 发起请求
            CloseableHttpResponse response = httpclients.execute(httpGet);
            // 处理数据
            HttpEntity httpEntity = response.getEntity();
            String s = EntityUtils.toString(httpEntity, "UTF-8");
            return JSON.parseArray(s);
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你提供一些关于使用 GitLab API 创建用户的指导。首先,你需要按照 GitLab API 的文档,通过发送一个 POST 请求来创建用户。具体的 API 端点是 `/users`,你需要传递一些参数来指定新用户用户名、密码、电子邮件地址等信息。以下是一个示例请求: ``` POST https://gitlab.example.com/api/v4/users PRIVATE-TOKEN: <your_access_token> { "email": "newuser@example.com", "username": "newuser", "name": "New User", "password": "password123", "reset_password": true } ``` 在上面的请求中,你需要将 `<your_access_token>` 替换为你自己的个人访问令牌,该令牌必须具有创建用户的权限。另外,`reset_password` 参数指示 GitLab创建用户后将其密码重置为一个随机值,并将该密码发送给新用户的电子邮件地址。 如果请求成功,GitLab 将返回一个 JSON 对象,其中包含有关新用户的信息,例如其 ID、用户名、电子邮件地址等。你需要记录下这些信息,以便将来向新用户分配 personal access token。 接下来,你需要使用 GitLab API 创建一个 personal access token。你可以通过向 `/users/:id/personal_access_tokens` 端点发送一个 POST 请求来创建个人访问令牌,其中 `:id` 是新用户的 ID。以下是一个示例请求: ``` POST https://gitlab.example.com/api/v4/users/:id/personal_access_tokens PRIVATE-TOKEN: <your_access_token> { "name": "New User Token", "expires_at": "2021-12-31", "scopes": [ "api", "read_user", "read_api" ] } ``` 在上面的请求中,你需要将 `<your_access_token>` 替换为你自己的个人访问令牌,`:id` 替换为新用户的 ID。另外,`name` 参数指定访问令牌的名称,`expires_at` 参数指定访问令牌的过期日期(可选),`scopes` 参数指定访问令牌的权限范围。 如果请求成功,GitLab 将返回一个 JSON 对象,其中包含有关新访问令牌的信息,例如其名称、令牌值、过期日期等。你需要将令牌值记录下来,并将其分配给新用户。请注意,只有在创建访问令牌时才会显示其值,因此请务必在创建后立即记录下来。 希望这些指导可以帮助你完成任务!如果你有其他问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值