Implement gitlab javascript widget: overview widget
https://docs.cleverthis.com/en/architecture/gitlab_widgets
Should adhere to the following requirements:
- It should be pulled from gitlab, and the versions should come from milestones set for a specific project.
- The color of the versions listed under "release" should be green if the release has no verified tickets that are bugs, red if there is a verified ticket that is a bug.
- The order of the releases should be the left most will be the most recently released
- When running the widget a parameter will tell it how many of the msot recent releases to show, if there are more than that it will be extended with a ... at the end
- The progress bars should be based on any milestones that have some tickets attached to it with at least one ticket completed. The percentage should show the same as the percentages under milestones in gitlab (basically a oercentage of tickets marked as the ilestone and complete)
- The stats at the bottom should be optional, the are pretty self explanatory. commits is just total commits, tickets are open vs all, mr is open vs all as well, starts are straight forward
- Progress bar should be based on tickets assigned to milestone, not MR. However if you want some "extra credit" you can do a stacked histogram to show both in one progress bar
- If milestone has a planned completion date it can show it next to the parenthesis like this
30% [Apr, 3, 2024]
- either make formatting like the border configurable or leave that to the person calling the widget to decide
- First write the JS widget to do this, then modify fedipage to add them as shortcodes.
- Clicking a link to a version by default should take you to it on gitlab. This should be overridable so you can either disable linking or optionally redirect it to a custom link (useful for when we write our own page summarizing the version.
- A special case unique to us. We sometimes need to mirror our open-source projects across two gitlab servers, one for internal development the other for public access. Therefore we need to be able to specify two or more gitlab servers as the source for the same project, and this widget will need to get the data from both independently and then combine it. For commits this isnt needed but for tickets, and MR this would be needed.