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)
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated -
API support added -
Tests added for this feature/bug - Review
-
Has been reviewed by UX -
Has been reviewed by Frontend -
Has been reviewed by Backend -
Has been reviewed by Database
-
-
Conform by the merge request performance guides -
Conform by the style guides -
Squashed related commits together -
Internationalization required/considered -
End-to-end tests pass ( package-qa
manual pipeline job)
What are the relevant issue numbers?
Implements #4272 (moved)
Edited by Riccardo Padovani