技术博客——通过gitlab api批量注册用户

gitlab登录界面本身提供了register功能,但需要手工一个个添加,对于一次性会添加整个班级的学生的软工平台来说并不科学合理。使用gitlab api来批量注册用户是一个比较好的选择。

gitlab api的官方文档中的user栏给出了create user的方法

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.

Note that force_random_password and reset_password take priority over password. In addition, reset_password and force_random_password can be used together.

POST /users

Parameters:

Attribute Required Description
admin No User is admin - true or false (default)
avatar No Image file for user’s avatar
bio No User’s biography
can_create_group No User can create groups - true or false
color_scheme_id No User’s color scheme for the file viewer (see the user preference docs for more information)
email Yes Email
extern_uid No External UID
external No Flags the user as external - true or false (default)
extra_shared_runners_minutes_limit No Extra pipeline minutes quota for this user
force_random_password No Set user password to a random value - true or false (default)
group_id_for_saml No ID of group where SAML has been configured
linkedin No LinkedIn
location No User’s location
name Yes Name
organization No Organization name
password No Password
private_profile No User’s profile is private - true, false (default), or null (will be converted to false)
projects_limit No Number of projects user can create
provider No External provider name
public_email No The public email of the user
reset_password No Send user password reset link - true or false(default)
shared_runners_minutes_limit No Pipeline minutes quota for this user
skip_confirmation No Skip confirmation - true or false (default)
skype No Skype ID
theme_id No The GitLab theme for the user (see the user preference docs for more information)
twitter No Twitter account
username Yes Username
website_url No Website URL

需要的信息有,用户的密码,用户名,邮箱,别名

需要注意的是,使用gitlab api创建的用户无法直接登陆,需要进行邮箱验证且修改密码,在csnd等寻找无果

但仔细阅读gitlab api的文档,发现其中有skip_confirmation字段,创建时将此字段置为true即可跳过邮箱验证正常登录。

同理,将reset_password置为false即可以去除登陆时修改密码的提示

在实现时,为了避免创建重复的用户或账号、密码格式不对等导致gitlab报错引起服务器报错,所以还需要调用gitlab api提供的List users方法,查找所有的用户信息,并与本地数据库存储的数据进行比对,来防止创建相同的用户。关于邮箱、密码等的格式,参考gitlab对于账号、密码邮箱等的规范,在vue的form组件中采用正则匹配的方法进行校对,就可以保证符合规范的操作不会使得界面崩溃。

但若不通过平台进行操作,直接在gitlab上进行注册的用户,由于本地数据库没有其信息,可能会导致意料之外的问题,,不仅包括用户的问题,还有项目等其他方面。故需要限制用户对于gitlab的随意操作,之后可能会在gitlab root用户的admin中对gitlab进行进一步的设置以限定用户行为。

[技术博客]大闸蟹的技术博客,通过gitlab api进行用户批量创建的更多相关文章

  1. 这是一个专注于电脑技术、软件应用、互联网、嵌入式,电子技术行业等的原创IT博客

    http://www.choovin.com/ 这是一个专注于电脑技术.软件应用.互联网.嵌入式,电子技术行业等的原创IT博客

  2. 继网易博客后搜狐博客也增加了nofollow标签

    继网易博客后搜狐博客也增加了nofollow标签 今天在搜狐博客发表了篇文章,在末端添加上我的版权,结果回头查看是发现,这个锚文本被加上了nofollow标签,也就是说这样的外链已经没有传递权重的作用 ...

  3. 【博客导航】Nico博客导航汇总

    摘要 介绍本博客关注的内容大类.任务.工具方法及链接,提供Nico博文导航. 导航汇总 [博客导航]Nico博客导航汇总 [导航]信息检索导航 [导航]Python相关 [导航]读书导航 [导航]FP ...

  4. MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。

    MWeb 1.3.7 版的新功能 增加发布到 Wordpress 等支持 Metaweblog API 的服务,目前经测试过的有: Wordpress 博客.新浪博客.cnblogs.oschina. ...

  5. asp.net批量发布博客到各大博客平台

    新浪博客 http://upload.move.blog.sina.com.cn/blog_rebuild/blog/xmlrpc.php 网易博客 http://os.blog.163.com/ap ...

  6. 基于Laravel开发博客应用系列 —— 构建博客后台管理系统

    一个完整的博客应用不能没有后台管理系统.所以在本节中我们将继续完善博客应用 —— 开发后台管理系统. 1.创建路由 在上一节十分钟创建博客项目中,已经设置过了 app/Http/routes.php, ...

  7. Node.js 从零开发 web server博客项目[express重构博客项目]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  8. Node.js 从零开发 web server博客项目[koa2重构博客项目]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  9. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

随机推荐

  1. RT-Thread 4.0 + STM32F407 学习笔记1

    RT Thread 4.0提供了新的BSP框架 新 BSP 框架的主要特性如下: 提供多系列 BSP 模板,大大降低新 BSP 的添加难度: 每个 BSP 都配有齐全的驱动文件,开发者可以方便地使用所 ...

  2. C# List集合类常用操作:四、删除

    Clear() 从 List<T> 中移除所有元素. List<Employees> employees = new List<Employees>(); empl ...

  3. Linux残留的EFI启动项删除后又恢复的问题

    电脑Windows + Fedora双系统,UEFI启动,共用同一个EFI分区.现在删除了Fedora系统,那么应该将EFI分区中的Fedora启动项也删除之. 按照网上的办法,在Windows上,尝 ...

  4. Vue设置全局js/css样式

    ''' 配置全局js mian.js: import settings from '@/assets/js/settings' Vue.prototype.$settings = settings; ...

  5. pyhton锁机制,进程池

    第一,进程锁,本来进程是各自的,本不要加锁,但是在屏幕上输出打印时为了防止混乱,在进程模块有一个锁函数,使用如下,需要说明是在py3以上版本没 有出现在过屏幕输出混乱,可以不加,这方法不重要,但是作为 ...

  6. python中模块与包

    #模块与包#在实际项目中,代码的行数可能上万,甚至上几十万,不可能在一个页面内完成,需要多个程序员通力写作#张三,李四,王五......每天收集大家的代码做一个版本,类似乐高积木一样,每个人负责一部分 ...

  7. Nginx系列(8)- Nginx安装 | Docker环境下部署

    Docker环境下部署Nginx https://www.cnblogs.com/gltou/p/15186971.html

  8. P6628-[省选联考 2020 B 卷] 丁香之路【欧拉回路,最小生成树】

    正题 题目链接:https://www.luogu.com.cn/problem/P6628 题目大意 给出\(n\)个点的一张完全无向图,\(i\sim j\)的边权是\(|i-j|\). 然后给出 ...

  9. CF204E-Little Elephant and Strings【广义SAM,线段树合并】

    正题 题目链接:https://www.luogu.com.cn/problem/CF204E 题目大意 \(n\)个字符串的一个字符串集合,对于每个字符串求有多少个子串是这个字符串集合中至少\(k\ ...

  10. NOI.AC#2007-light【根号分治】

    正题 题目链接:http://noi.ac/problem/2007 题目大意 \(n\)个格子排成一排,每个格子有一个\(0/1\)和一个颜色.开始每个格子都是\(0\),\(q\)次操作取反一个颜 ...