- this case happens when a developer does not add there email in a commit - some projects are very strict about always including a developer email but in the case of apache style tags the email is most often not included, only the developer name is - developers without an email were previously assigned a generic replacement, the problem with this approach is that the email is used for merging aliases and thus everyone with the same email gets assigned the same person Id - we now introduce a random string email replacement so that the alias merging will resolve unique Ids for people without an email address - an alternative solution would be to change the order in which the id service performes alias merging and keep the generic replacement email, I think that the generic email is a bad idea in general since the nature of an email address is unique to the individual or organization that it represents and we destroy that notion of uniqueness when we assign a generic email, I think we still need to know when an email was artificially generated and thats why we need a generic plus a unique component for the email as provided by this patch Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@xxxxxxxxxxx> --- codeface/cluster/idManager.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/codeface/cluster/idManager.py b/codeface/cluster/idManager.py index 8030028..944cc1e 100644 --- a/codeface/cluster/idManager.py +++ b/codeface/cluster/idManager.py @@ -23,6 +23,7 @@ import httplib import urllib import json import string +import random class idManager: """Provide unique IDs for developers. @@ -88,7 +89,9 @@ class idManager: # In this case, no eMail address was specified. # print("Fixup for email required, but FAILED for {0}".format(addr)) name = addr - email = "could.not@xxxxxxxxxxxxxxx" + rand_str = "".join(random.choice(string.ascii_lowercase + string.digits) + for i in range(10)) + email = "could.not.resolve@"+rand_str email = email.lower() -- 1.8.3.2