Skip to content

Truncate `note_metadata.email_participant

The following discussion from !117149 (merged) should be addressed:

  • @splattael started a discussion: (+7 comments)

    According to https://www.rfc-editor.org/rfc/rfc5321.txt an email address can be as long a 320 chars: 64 local part + @ + 255 chars domain.

    Question (non-blocking) Should we truncate email_participant to 255 chars to ensure that the note is created even if the sender's email address exceeds 255 chars? 🤔

    Marking as non-blocking because it's a rare case and Gitlab::Utils::Email.obfuscated_email needs to handle input which does not look like an email address.

    Example:

    [10] pry(main)> email = "#{"a" * 255}@example.com"
    => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com"
    [11] pry(main)> truncated = email.truncate(255)
    => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..."
    [12] pry(main)> Gitlab::Utils::Email.obfuscated_email(truncated, deform: true)
    => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..."
    [13] pry(main)> Gitlab::Utils::Email.obfuscated_email(email, deform: true)
    => "aa*****@e*****.c**"

    /cc @msaleiko