1

首先,我对使用 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. 如果 gitlab 无法管理这个,我想实现接收后挂钩来发送邮件。如何为此配置我的后缀?

4

1 回答 1

0

这取决于您的 GitLab 版本,但最新版本似乎不适用于 Resque 工作人员(包括resque mailer):
请参阅问题 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 - 在稳定的 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脚本并PIDFILE=从 resque 命令中删除。
在启动命令后resque添加以下内容

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

所以pidfile创建了 - 这修复了“停止”错误

stop/start gitlab- 推动和你的罚款

于 2013-01-08T13:50:02.610 回答