in pkg/client/gerrit/project_access.go [69:101]
func generateSetAccessRequest(permissions []AccessInfo, added, modified bool) map[string]reference {
refs := make(map[string]reference)
for _, perm := range permissions {
_, ok := refs[perm.RefPattern]
if !ok {
ref := reference{Permissions: make(map[string]permission)}
refs[perm.RefPattern] = ref
}
_, ok = refs[perm.RefPattern].Permissions[perm.PermissionName]
if !ok {
permName := permission{Rules: make(map[string]groupPermissions), Label: perm.PermissionLabel}
refs[perm.RefPattern].Permissions[perm.PermissionName] = permName
}
_, ok = refs[perm.RefPattern].Permissions[perm.PermissionName].Rules[perm.GroupName]
if !ok {
groupPerm := groupPermissions{
Action: perm.Action,
Force: perm.Force,
Max: perm.Max,
Min: perm.Min,
Added: added,
Modified: modified,
}
refs[perm.RefPattern].Permissions[perm.PermissionName].Rules[perm.GroupName] = groupPerm
}
}
return refs
}