Skip to content

WIP: #4272: mailing list

Things to do to remove WIP status:

  • Frontend
    • Add in the control panel the dropdown to activate / disable the ML feature, and select if public or not
    • Add settings in admin panel control
    • Add somewhere the email address for the project (UX input needed, I think?)
  • Add documentation for the feature
  • Database
    • Be sure the table structure makes sense
    • Be sure to add all the right indexes
    • Generate schema.sql
    • Rename the patch with the most correct date
    • Clean up the ML pending subscription table every x hours?
    • Create ML entry for existing projects
  • Backend
    • Add email handler in lib/gitlab/email/handler.rb (requires #37403 (closed))
    • Make sure the project feature is well implemented everywhere is needed
    • Update ML when the project path changes
    • When a user leaves a group, or is deleted from the instance, remove it from the ML if the ML is not public
    • When the ML becomes private, remove not members from the ML
  • Add tests
  • Once is done, open issue for next iterations (button in the interface to subscribe, sending email also if not subscribed, ML archive, digest option, APIs)

What does this MR do?

Implement a mailing list service for every project.

With this first iteration:

  • User can subscribe and unsubscribe
  • If you are subscribed, every email sent to the ML is forwarded to you
  • To subscribe, you need to click a confirmation link, to prevent other people to subscribe you
  • ML for private / internal projects is private
  • No email is stored on archives

Are there points in the code the reviewer needs to double check?

Database schema

Why was this MR needed?

Screenshots (if relevant)

ml_private_repo admin_area confirm_subscription_email

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

Implements #4272 (moved)

Edited by Riccardo Padovani

Merge request reports