in groups/reconcile.go [448:465]
func mergeGroups(a []GoogleGroup, b []GoogleGroup, r Restriction) ([]GoogleGroup, error) {
emails := map[string]struct{}{}
for _, v := range a {
emails[v.EmailId] = struct{}{}
}
for _, v := range b {
if v.EmailId == "" {
return nil, fmt.Errorf("groups must have email-id")
}
if !matchesRegexList(v.EmailId, r.AllowedGroupsRe) {
return nil, fmt.Errorf("cannot define group %q in %q", v.EmailId, r.Path)
}
if _, ok := emails[v.EmailId]; ok {
return nil, fmt.Errorf("cannot overwrite group definitions (duplicate group name %s)", v.EmailId)
}
}
return append(a, b...), nil
}