启用集成的SMTP通知与自制的挂钩

时间:2013-01-08 12:51:34

标签: git gitolite gitlab

首先,我对使用gitlab时通过Web应用程序管理用户和项目的强大解决方案感到非常兴奋。

我完成了安装并将我的smpt设置添加到文件config / production.rb:

 config.action_mailer.delivery_method = :smtp
 config.action_mailer.smtp_settings = {
 :address => 'myserver.com',
 :port => 25,
 :domain => 'gitlab.adomain.com',
 :authentication => :plain,
 :user_name => 'gitlab@myserver.com',
 :password => '',
 :enable_starttls_auto => true
 }

另外,我更改了文件config / gitlab.yml:

email:
from: account@myserver.com
…

检查SMTP设置并与其他应用程序一起正常运行。我重新启动了gitlab-server,期望在将用户添加到项目时发送通知,或者即使提交传播到远程而不使用自制挂钩。但他们不是。

这是我的网络界面的输出:

     gitserver:3254 on mailer at 2 minutes ago

Class
    Notify
Arguments

    "project_access_granted_email"
    31    
Exception
    Net::SMTPAuthenticationError
Error
    502 Command "AUTH PLAIN <tokenid>" not implemented 

这是我的问题:

  1. 在我的resque概述中,有一个名为mailer的队列,其中有1个活动(邮件)作业无法完成。下面是一个没有工人正在工作的信息。我该如何处理?

  2. 我想实现post-receive hooks来发送邮件,如果gitlab结果无法管理它。如何配置我的后缀?

1 个答案:

答案 0 :(得分:0)

这取决于您的GitLab版本,但最新的版本似乎不适用于Resque工作人员(包括resque mailer):
issue 2472

# bundle exec rake environment resque:work QUEUE=post_receive,mailer,system_hook RAILS_ENV=production PIDFILE=tmp/pids/resque_worker.pid
Starting worker git1-0:7710:post_receive,mailer,system_hook
Registered signals
Running before_first_fork hooks with [#<Worker git1-0:7710:post_receive,mailer,system_hook>]
#~

如果您的案例中至少有一个进程(管理/发送电子邮件)正在运行,您可以检查这种方式。

由于版本过时,所提到的问题目前有更新redis的决议:

  

作为root - on stable debian

/etc/init.d/redis-server stop
cd /tmp
wget http://redis.googlecode.com/files/redis-2.2.4.tar.gz
cd redis-2.2.4
make PREFIX=/usr
make install PREFIX=/usr
/etc/init.d/redis-server start
  

编辑init.d脚本并从resque命令中删除PIDFILE=   在resque的启动命令后添加以下

ps auxww|grep QUEUE=post|head -n1|awk '{print $2}' > $RESQUE_PID
  

所以创建了pidfile - 这解决了“停止”错误

     

stop/start gitlab - 推送你的罚款