封尘网

让学习成为一种习惯!

Gitlab-ce添加邮件找回密码和代码推送提醒功能

因为考虑到代码的安全,公司直接在内网搭建了一个Gitlab代码仓库。这样对于内网开发提交、更新代码非常快;但是最近有个开发说密码忘记了,叫帮忙修改。你个XX。。。虽然用管理员登陆去修改用户密码是个很简单的事,但是这毕竟不应该,原本gitlab就有通过邮件地址修改密码的功能,为何不使用呢?

为了考虑到以后可能会有更多个XXX说密码忘记了,免得改完一次又一次,所以就有了以下的操作;

邮件找回密码
1、因为gitlab一直都在运行着,所以要修改前记录备份一下配置文件;

cp /etc/gitlab/gitlab.rb{,.bak}

2、修改配置文件:/etc/gitlab/gitlab.rb 这里使用163的来发邮件;

[root@gitlab ~]# egrep -v "^$|^#" /etc/gitlab/gitlab.rb 
external_url 'http://10.0.10.78' 
gitlab_rails['time_zone'] = 'Asia/Shanghai' 
gitlab_rails['gitlab_email_enabled'] = true 
gitlab_rails['gitlab_email_from'] = '邮件用户名@163.com' 
gitlab_rails['gitlab_email_display_name'] = 'Gitlab CE' 
gitlab_rails['smtp_enable'] = true 
gitlab_rails['smtp_address'] = "smtp.163.com" 
gitlab_rails['smtp_port'] = 25 
gitlab_rails['smtp_user_name'] = "邮件用户名@163.com" 
gitlab_rails['smtp_password'] = "邮件帐号的密码" 
gitlab_rails['smtp_domain'] = "163.com" 
gitlab_rails['smtp_authentication'] = "login" 
gitlab_rails['smtp_enable_starttls_auto'] = false 
user['git_user_email'] = "邮件用户名@163.com"

3、保存修改,更新配置;

gitlab-ctl reconfigure

这里不用担心影响代码,只是把修改过的配置文件信息,刷新到配置文件中;其实上面修改一个配置文件gitlab.rb 它里面的配置会被此命令调用编写成多个配置文件到安装目录下:/var/opt/gitlab/gitlab-rails/etc/

就上面的修改其实也可以直接修改此目录下的:smtp_settings.rb

如果直接修改smtp_settings.rb文件就只要重启一下gitlab-ctl restart即可。

完成上面操作后,回到登陆页面,选择Forgot your password? 输入你帐号的邮箱地址即可收到邮件,根据邮件地址修改新密码即可;

如果邮件地址也忘记了,那就该拖出去砍了。

代码推送提醒功能
接下来再添加一个项目有代码提交后发邮件给指定的邮箱提醒通知,这个对于代码审核还是有帮助的,至少知道谁什么时候推送新代码了,更新了哪些内容等;

管理员登陆到gitlab界面,点击左下角的settings—services—Emails on push, 勾选Active,Recipients填写本项目更新需要推送知晓的人员,多个用空格或者逗号隔开:

收到的邮件效果如下图:

补充:2018-01-13日
最近在阿里云的ECS专有网络主机上配置了一个gitlab仓库,因为默认这些专有网络的ECS主机都是禁用了25端口的,所以这个gitlab.rb的配置就有做相应的改变,使用465协议。

只修改以下两行即可,修改完要更新配置:gitlab-ctl reconfigure

gitlab_rails['smtp_port'] = 25  
gitlab_rails['smtp_tls'] = true

提醒:本文最后更新于 768 天前,文中所描述的信息可能已发生改变,请谨慎使用。