diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-03-02 10:43:57 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-03-02 10:43:57 +0000 |
commit | 8ec49e47ec7e8181ce4087f4b24008b0d07f7d9e (patch) | |
tree | 0870383139318f771c1368df95c5bd4a3fb41f95 /config | |
parent | c71c5876cbb66890c87de063982d671299c9dc8e (diff) | |
parent | 84473c75134cb9d151c3a2e5f572b77f910573f7 (diff) | |
download | gitlab-ce-8ec49e47ec7e8181ce4087f4b24008b0d07f7d9e.tar.gz |
Merge branch 'mail-room-config-without-rails' into 'master'
Don't load all of GitLab in mail_room
Fixes #12731
cc @jacobvosmaer
See merge request !3005
Diffstat (limited to 'config')
-rw-r--r-- | config/initializers/1_settings.rb | 6 | ||||
-rw-r--r-- | config/mail_room.yml | 85 |
2 files changed, 50 insertions, 41 deletions
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb index 713204b1c51..626268d7648 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -207,11 +207,7 @@ Settings.gitlab_ci['builds_path'] = File.expand_path(Settings.gitlab_c # Reply by email # Settings['incoming_email'] ||= Settingslogic.new({}) -Settings.incoming_email['enabled'] = false if Settings.incoming_email['enabled'].nil? -Settings.incoming_email['port'] = 143 if Settings.incoming_email['port'].nil? -Settings.incoming_email['ssl'] = false if Settings.incoming_email['ssl'].nil? -Settings.incoming_email['start_tls'] = false if Settings.incoming_email['start_tls'].nil? -Settings.incoming_email['mailbox'] = "inbox" if Settings.incoming_email['mailbox'].nil? +Settings.incoming_email['enabled'] = false if Settings.incoming_email['enabled'].nil? # # Build Artifacts diff --git a/config/mail_room.yml b/config/mail_room.yml index 42f6f74c465..f266a70ee0d 100644 --- a/config/mail_room.yml +++ b/config/mail_room.yml @@ -1,39 +1,52 @@ :mailboxes: <% -require_relative 'config/environment.rb' - -if Gitlab::IncomingEmail.enabled? - config = Gitlab::IncomingEmail.config - - redis_config_file = "config/resque.yml" - redis_url = - if File.exists?(redis_config_file) - YAML.load_file(redis_config_file)[Rails.env] - else - "redis://localhost:6379" - end - %> - - - :host: <%= config.host.to_json %> - :port: <%= config.port.to_json %> - :ssl: <%= config.ssl.to_json %> - :start_tls: <%= config.start_tls.to_json %> - :email: <%= config.user.to_json %> - :password: <%= config.password.to_json %> - - :name: <%= config.mailbox.to_json %> - - :delete_after_delivery: true - - :delivery_method: sidekiq - :delivery_options: - :redis_url: <%= redis_url.to_json %> - :namespace: resque:gitlab - :queue: incoming_email - :worker: EmailReceiverWorker - - :arbitration_method: redis - :arbitration_options: - :redis_url: <%= redis_url.to_json %> - :namespace: mail_room:gitlab +require "yaml" +require "json" + +rails_env = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development" + +config_file = ENV["MAIL_ROOM_GITLAB_CONFIG_FILE"] || "config/gitlab.yml" +if File.exists?(config_file) + all_config = YAML.load_file(config_file)[rails_env] + + config = all_config["incoming_email"] || {} + config['enabled'] = false if config['enabled'].nil? + config['port'] = 143 if config['port'].nil? + config['ssl'] = false if config['ssl'].nil? + config['start_tls'] = false if config['start_tls'].nil? + config['mailbox'] = "inbox" if config['mailbox'].nil? + + if config['enabled'] && config['address'] && config['address'].include?('%{key}') + redis_config_file = "config/resque.yml" + redis_url = + if File.exists?(redis_config_file) + YAML.load_file(redis_config_file)[rails_env] + else + "redis://localhost:6379" + end + %> + - + :host: <%= config['host'].to_json %> + :port: <%= config['port'].to_json %> + :ssl: <%= config['ssl'].to_json %> + :start_tls: <%= config['start_tls'].to_json %> + :email: <%= config['user'].to_json %> + :password: <%= config['password'].to_json %> + + :name: <%= config['mailbox'].to_json %> + + :delete_after_delivery: true + + :delivery_method: sidekiq + :delivery_options: + :redis_url: <%= redis_url.to_json %> + :namespace: resque:gitlab + :queue: incoming_email + :worker: EmailReceiverWorker + + :arbitration_method: redis + :arbitration_options: + :redis_url: <%= redis_url.to_json %> + :namespace: mail_room:gitlab + <% end %> <% end %> |