List plugin maintainer email addresses per person
Some plugin maintainers use multiple Gerrit accounts using different
email addresses. Hence list maintainer email addresses per person and
not per account.
Change-Id: I898769ce8195dc3fc67108c5ca1c171b50653a6b
diff --git a/tools/plugins.py b/tools/plugins.py
index 1e07746..5bb122c 100644
--- a/tools/plugins.py
+++ b/tools/plugins.py
@@ -110,9 +110,6 @@
name: str
email: str
- def render_identity(self):
- return f"{self.name} <{self.email}>"
-
class Plugins:
"""Class to retrieve data about Gerrit plugins and render the plugins page"""
@@ -253,7 +250,7 @@
for (plugin, maintainers) in results:
self.plugins.append(plugin)
for m in maintainers:
- self.maintainers[m].append(plugin.name)
+ self.maintainers[m.name].append((m, plugin.name))
def _authenticate(self):
if self.options.netrc:
@@ -375,15 +372,22 @@
dashes = "|----------|-------|"
output.write("\n\n## Plugin Maintainers")
output.write(f"\n\n{header}|\n{dashes}|\n")
- for m in sorted(self.maintainers, key=attrgetter("name")):
- output.write(f"|{m.name}|{', '.join(sorted(self.maintainers.get(m)))}|\n")
+ for m in sorted(self.maintainers):
+ plugins = set()
+ for (_, p) in self.maintainers.get(m):
+ plugins.add(p)
+ output.write(f"|{m}|{', '.join(sorted(plugins))}|\n")
def render_maintainers_email(self, output):
output.write(f"\nAll {len(self.maintainers)} plugin maintainers:\n")
- for m in sorted(self.maintainers, key=attrgetter("name")):
- if m.name == CORE_MAINTAINERS_NAME:
+ for m in sorted(self.maintainers):
+ if m == CORE_MAINTAINERS_NAME:
continue
- output.write(f"{m.render_identity()}\n")
+ emails = set()
+ output.write(f"{m}: ")
+ for (accounts, _) in self.maintainers.get(m):
+ emails.add(accounts.email)
+ output.write(f"{', '.join(sorted(emails))}\n")
def render_page(self, output):
output.writelines(self._render_template())