Commit f40a1dc8 authored by Douwe Maan's avatar Douwe Maan Committed by Jarka Košanová

Merge branch '38197-fix-ImapAuthenticationCheck' into 'master'

Fix `rake gitlab:incoming_email:check`

Closes #38197

See merge request !14423
parent 51283670
---
title: Fix `rake gitlab:incoming_email:check` and make it report the actual error
merge_request: 14423
author:
type: fixed
......@@ -4,22 +4,17 @@ module SystemCheck
set_name 'IMAP server credentials are correct?'
def check?
if mailbox_config
begin
imap = Net::IMAP.new(config[:host], port: config[:port], ssl: config[:ssl])
imap.starttls if config[:start_tls]
imap.login(config[:email], config[:password])
connected = true
rescue
connected = false
end
if config
try_connect_imap
else
@error = "#{mail_room_config_path} does not have mailboxes setup"
false
end
connected
end
def show_error
try_fixing_it(
"An error occurred: #{@error.class}: #{@error.message}",
'Check that the information in config/gitlab.yml is correct'
)
for_more_information(
......@@ -30,15 +25,31 @@ module SystemCheck
private
def mailbox_config
return @config if @config
def try_connect_imap
imap = Net::IMAP.new(config[:host], port: config[:port], ssl: config[:ssl])
imap.starttls if config[:start_tls]
imap.login(config[:email], config[:password])
true
rescue => error
@error = error
false
end
def config
@config ||= load_config
end
def mail_room_config_path
@mail_room_config_path ||=
Rails.root.join('config', 'mail_room.yml').to_s
end
config_path = Rails.root.join('config', 'mail_room.yml').to_s
erb = ERB.new(File.read(config_path))
erb.filename = config_path
def load_config
erb = ERB.new(File.read(mail_room_config_path))
erb.filename = mail_room_config_path
config_file = YAML.load(erb.result)
@config = config_file[:mailboxes]&.first
config_file.dig(:mailboxes, 0)
end
end
end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment