背景:
参照https://www.yuque.com/duiniwukenaihe/znm95g/fmpmzk内网搭建了一台gitlab服务器。嗯 然后我要测试webhook触发jenkins流水线。然后给用户发邮件。当然了要取传参里面的用户的邮箱(我用的默认管理员的用户),由于默认并没有对邮箱进行设置都是默认的admin@example.com? user_email的参数都是空的呢?
问题是我现在想要渠道这个参数然后给user发邮件。那我该怎么办呢?无非两点:
- 新建一个用户,并且有该仓库拉取代码的权限。并设置邮箱
- 修改管理员root用户邮箱
正常来说应该采用第一种方式。因为什么都用root用户还是很危险的不符合用户权限最小化原则。但是为了简单操作演示,并且是个人演示环境,我还是决定修改root的用户邮箱了…
1.思路与过程:
gitlab的配置应该是在/etc/gitlab/gitlab.rb中配置的,那我们是不是可以修改gitlab.rb中邮箱的默认配置,然后重新加载配置: gitlab-ctl reconfigure。这是我理解的第一种方式,当然了。我并没有按照这种方式去设置的
因为稍微有点软件搭建经验的人就应该知道:gitlab在初始化后数据应该是存储在postgresql中了的啊,。我的gitlab是用了pg做外部数据库。那我是不是可以修改pg数据库中用户的相关信息呢?
说干就干:
psql -U gitlab -W gitlabhq_production -h localhost -p 54322
-U是用户 -W 是对应库吧?至于端口默认的是5432,我docker搭建的对外映射的是54322端口 so就可以连上pg数据库了
update users set email='820042728@qq.com',notification_email='820042728@qq.com',commit_email='820042728@qq.com' where id = 1;
百度习得修改邮箱的语句…到现在为止 还是不怎么熟悉pg的语句。等搞完收了这堆杂七乱八深入学习下pg。查看gitlab管理员root用户信息页面:
邮箱修改成功。ok测试下webhook:
怎么还是空的呢?
what依然没有修改啊? 是不是需要重启下gitlab?
等待gitlab重启后依然是为空
怎么回事?特意看一眼pg的数据库没有问题的啊
怎么办?再点开个人设置查看一下:难道public的问题?设置一下 然后更新个人资料设置。
继续触发一下webhook:
ok成功了。
但是commit这个鬼东西哪个地方修改呢?
突然灵光一闪…我压根没有commit啊 …都是前面没有修改前的吧…当初确实是这个默认的啊 gitlab的用户邮箱。新建一个文件commit
然后触发下webhook
嗯 都变过来了。不要去怀疑软件的问题…还的自身找原因。更深入的了解系统的配置参数才是重中之重。