如何使用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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值