批量添加git用户:

1.root账户登录:用户setting找到private Token

gitlab怎么知道是哪个账号移除群组权限的 gitlab删除用户_重启

2.shell脚本  切换到home 目录 (这里的目录可以自行定)

3.使用 vi userinfo.txt 命令在/home/gitAdd 下创建 userinfo.txt 文件,内容格式如
zhangsan zhangsan 1340907@qq.com

用户名 别名 邮箱
4.使用 vi gitlabBatchUser.sh 命令在/home 下创建gitlabBatchUser.sh 脚本: ( 添加时注意空格)

private Token = SEDXASSS-WWW"

地址改为实际地址 "http://192.168.1.89/api/v3/users"

#!/bin/bash
userinfo="userinfo.txt"
while read line
do
name=`echo $line | awk '{print $1}'`
username=`echo $line | awk '{print $2}'`
mail=`echo $line | awk '{print $3}'`
curl -d "projects_limit=0&can_create_group=false&password=sysware123&email=$mail&username=$username&name=$name&private_token=SEDXASSS-WWW" "http://192.168.1.89/api/v3/users"
done <$userinfo

注意空格!注意空格注意空格注意空格!注意空格注意空格注意空格!

http://192.168.1.89/api/v3/users: 

该api的路径 是 网址加上api版本信息。

5.授权执行sh脚本 :chmod +x gitlabBatchUser.sh

6. 执行sh 脚本:sh gitlabBatchUser.sh  不报错提示添加完成信息

gitlab取消邮箱验证(适用gitlab各个版本)

需求:gitlab关闭注册功能。每次注册用户需要管理员手动注册,但是遇到批量注册用户的时候,就很浪费时间,所以调用gitlabAPI写了一个批量注册用户的接口,但注册用户都要发邮箱验证,有公司内部邮箱的同事可以正常收到,但是外委人员用的qq邮箱接收不到邮箱验证,所以就干脆把邮箱验证取消。
在网上搜了很多资料,基本都是跟着gitlab版本给出的解决方案,但是我按照一模一样的gitlab版本去操作都没能解决问题,都是取消邮箱验证可以,但是访问gitlab页面总有报错的,我遇到报错的页面有登录页面报错,settings页面报错等。下面整理下我摸索出的解决方案,适合各个gitlab版本。

  示例的系统为centos7,gitlab版本为:10.2.5

1.找到user.rb文件,直接使用命令找:find / -name user.rb

gitlab怎么知道是哪个账号移除群组权限的 gitlab删除用户_gitlab_02

2.会出来很多文件,按照我给出的找到对的那个,我使用yum安装的,默认位置:/opt/gitlab/embedded/service/gitlab-rails/app/models/user.rb。
3.打开文件,找到“:confirmable”,删除它,并保存。

gitlab怎么知道是哪个账号移除群组权限的 gitlab删除用户_邮箱验证_03


4.执行 :gitlab-ctl reconfigure

5.gitlab启动后就执行重启命令:gitlab-ctl restart,没启动就执行启动命令:gitlab-ctl start

6.从登录页面开始,点击每个功能,看是否有报错(500),如果没错,那恭喜你,可以不用再继续操作,取消邮箱验证成功。但是我测试了多个版本,都有报错,下面重点来了:
7.如果发现点击某个页面有报错,找到gitlab日志文件,执行命令找到报错提示:find / -name production.log,我的位置:/var/log/gitlab/gitlab-rails/production.log

gitlab怎么知道是哪个账号移除群组权限的 gitlab删除用户_邮箱验证_04

8.执行命令打开日志文件:tail -f /var/log/gitlab/gitlab-rails/production.log,看到报错内容:

gitlab怎么知道是哪个账号移除群组权限的 gitlab删除用户_邮箱验证_05

9. 根据提示找到标黄的文件:删除标红的报错内容,然后重启gitlab即可:gitlab-ctl restart

gitlab怎么知道是哪个账号移除群组权限的 gitlab删除用户_邮箱验证_06

10.我的一般做完第9步,问题就得以解决了,如果重启后还报错,看看报错内容是否一样,如果一样,检查自己删除的文件内容是否删除错误或者未删除干净,如果提示错误内容不同,按照第10步骤类似解决问题即可。
11.出现页面报错的原因是,你将邮箱验证的:confirmable删除了,导致页面访问报错,所以需要删除涉及的页面内容。

12.打开gitlab用户界面报错

Completed 500 Internal Server Error in 99ms (ActiveRecord: 4.9ms)

ActionView::Template::Error (undefined method `confirmed?' for #<User id:21 @hjd1>
Did you mean?  confirmed_at?
               confirmed_at):
    127: 
    128:   .col-md-6
    129:     - unless @user == current_user
    130:       - unless @user.confirmed?
    131:         .panel.panel-info
    132:           .panel-heading
    133:             Confirm user
  app/views/admin/users/show.html.haml:130:in `_app_views_admin_users_show_html_haml__4420523842630241580_69891110740980'
  lib/gitlab/i18n.rb:46:in `with_locale'

vim /opt/gitlab/embedded/service/gitlab-rails/app/views/admin/users/show.html.haml  将下面的数据删掉 重启 gitlab-ctl restart即可

unless @user.confirmed?
.panel.panel-info
.panel-heading
Confirm user
.panel-body
if @user.unconfirmed_email.present?
email = " (#{@user.unconfirmed_email})"
%p This user has an unconfirmed email address#{email}. You may force a confirmation.
%br
= link_to 'Confirm user', confirm_admin_user_path(@user), method: :put, class: "btn btn-info", data: { confirm: 'Are you sure?' }