git邮件配置出现网页上面的操作记录与邮件通知不共存问题

发布于 2021-11-28 08:59:14 字数 911 浏览 736 评论 18

@独孤青冥 你好,想跟你请教个问题:大神,你好,劳烦帮我看一下下面的问题。。。急

最近搭建gitlab服务器,使用的安装包是bitnami-gitlab-7.10.1-0-linux-x64-installer(gitlab一键安装包).run。

安 装完成后,能够打开gitlab页面,并创建项目。创建项目之后,在/opt/gitlab-7.10.1-0/apps/gitlab /repositories目录下面,就会有相应的项目目录,比如test.git(在hooks目录下面有post-receive、pre- receive和update文件,都是ruby脚本)。此时将成员加入到项目中来,由成员进行push,在页面的activity里面有成员的 commit记录。但是这个时候是不会发送邮件的。

 下面就是配置自动发送邮件,我从网上down下一个post- receive-email文件(shell脚本),并放在hooks目录下面,并在config里面进行邮件发送的相关配置。如果我将post- receive-email文件mv成post-receive时,项目程序push代码并commit,项目里面的其他成员是可以收到邮件的。但是在 activity页面里面就没有成员commit的记录。

 而当我不mv post-receive-email成post-receive时,项目成员push文件并commit,就会在activity里面有commit记录,但就是不会自动发送邮件。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(18

疾风者 2021-12-02 11:47:09

能看出为什么shell脚本插在post-receive里面没有结果输出 的原因吗

陌上芳菲 2021-12-02 11:47:08

回复
额..不能...

岁吢 2021-12-02 11:47:07
require_relative '../lib/gitlab_custom_hook'

 GitlabCustomHook.new.update

GitlabPostReceive.new(repo_path, key_id, refs).exec &&GitlabCustomHook.new.post_receive(refs, repo_path)

这就是他们的差别哈,多引入了一个文件,多执行了一条语句,具体的执行了哪些代码你的分别去看update与post_receive这两个函数,ruby很容易懂的,基本都是语义化的代码,直接翻译过来是啥意思基本上就是干啥的

背叛残局 2021-12-02 11:47:06

引用来自“fancy_ff”的评论

引用来自“独孤青冥”的评论

after_update是rails的特性,他不是文件,是一段代码哈,作用就是更新后自动触发,代码具体在哪我也不知道....你找找gitlab-shell,在你gitlab的同级目录下

空城仅有旧梦在 2021-12-02 11:47:04

引用来自“独孤青冥”的评论

after_update是rails的特性,他不是文件,是一段代码哈,作用就是更新后自动触发,代码具体在哪我也不知道....你找找gitlab-shell,在你gitlab的同级目录下

酒几许 2021-12-02 11:46:58

after_update是rails的特性,他不是文件,是一段代码哈,作用就是更新后自动触发,代码具体在哪我也不知道....你找找gitlab-shell,在你gitlab的同级目录下

谁的新欢旧爱 2021-12-02 11:46:58

你好,因为评论输入不了那么多内容,麻烦你看一下我回复的引用内容。。谢谢 啦

掩饰不了的爱 2021-12-02 11:46:57

不是放在哪个目录下,是写在代码里面,也就是要修改gitlab的代码...

风柔一江水 2021-12-02 11:46:57

你知道git的代码是在哪里吗?就是执行这个脚本的代码

成熟的代价 2021-12-02 11:46:57

额,不会~~

本王不退位尔等都是臣 2021-12-02 11:46:28

下图是页面上的记录:

眉黛浅 2021-12-02 11:45:29

如果把Post-receive-email这个放在后面调用,则会出现页面有记录,但是却收不到邮件。下图是页面上的记录:

奢望 2021-12-02 11:33:09

放在图中位置则是能收到邮件,但是页面记录就没有了。。。

浮生未歇 2021-12-02 09:49:54

额..我们用的版本大概是5点几,不知道你说的activity页面时哪个页面..另外,我不熟悉你这个版本的gitlab,不知道问题出在哪,但你可以试一试同时存在两份shell脚本并且修改ruby脚本让他分别触发两个shell脚本,这样就解决你的问题了....当然,你可以试着将两个脚本搞成一个,或者开调试模式追踪不发送邮件的问题,抱歉,我能给的建议就这么多

我看了你的截图,是有调用hooks目录下的shell脚本,你可以试着在下面再写一个调用

晚风撩人 2021-12-02 07:46:39

hook就是在gitlab中的项目下的,ruby文件(生成操作记录的)是系统自带的,我没有动过地址。里面调用的post-receive-email文件(shell)是网上下载的发送邮件的脚本,按网上教程也是放在这个目录下。因为hook只会执行post-receive这个文件 ,所以我就把下载的shell文件放在ruby里面调用了

本宫微胖 2021-11-30 16:38:18

你说的动态生成的文件是放到gitlab哪个目录下呢?

清晨说ぺ晚安 2021-11-29 12:38:34

我们这边没有生成过after_update文件。如果我在前台创建一个项目,假如是test.git,那么它就会在后台自动生成test.git目录,然后在test.git目录下面有discription、config、hooks目录等等hooks目录下面就有自动生成update、pre-receive、post-receive这三个文件,并没有after_update文件。

北笙凉宸 2021-11-28 11:34:00

等会,我看着有点不对劲..为什么邮件发送以及动态生成全放在hook里面?应该写在gitlab中做个 after_update才对啊,我看了一下我们正在使用的版本,压根就没有这个文件,也没有这个调用....这样,你邮件发送放在hook里面,但是动态生成你放到gitlab 中去,我们目前就是这样做的...另外,你可以对比一下两个shell脚本有什么不同,然后整合成一个脚本调用试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文