tof-voters: Record name and email in analysis
With this we can make the data a little easier to consume.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Id1cc858dc002adfdf35e2a7bb790dc4872d9c570
diff --git a/tof-voters/libvoters/subcmd/analyze-commits.py b/tof-voters/libvoters/subcmd/analyze-commits.py
index ea92ed1..7957319 100644
--- a/tof-voters/libvoters/subcmd/analyze-commits.py
+++ b/tof-voters/libvoters/subcmd/analyze-commits.py
@@ -8,6 +8,7 @@
from typing import Dict
import libvoters.acceptable as acceptable
+from libvoters import UserChanges, changes_factory
from libvoters.time import TimeOfDay, timestamp
@@ -36,7 +37,7 @@
before = timestamp(args.before, TimeOfDay.AM)
after = timestamp(args.after, TimeOfDay.PM)
- changes_per_user: Dict[str, list[int]] = defaultdict(list)
+ changes_per_user: Dict[str, UserChanges] = defaultdict(changes_factory)
for f in sorted(os.listdir(args.dir)):
path = os.path.join(args.dir, f)
@@ -69,7 +70,7 @@
project = data["project"]
id_number = data["number"]
- user = data["owner"]["username"]
+ username = data["owner"]["username"]
if not acceptable.project(project):
print("Rejected project:", project, id_number)
@@ -93,11 +94,14 @@
print("Rejected for limited changes:", project, id_number)
continue
- print(project, id_number, user)
+ print(project, id_number, username)
for f in touched_files:
print(f" {f}")
- changes_per_user[user].append(id_number)
+ user = changes_per_user[username]
+ user["name"] = data["owner"]["name"]
+ user["email"] = data["owner"]["email"]
+ user["changes"].append(id_number)
with open(os.path.join(args.dir, "commits.json"), "w") as outfile:
outfile.write(json.dumps(changes_per_user, indent=4))