in github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroupBackend.java [77:111]
public Set<GroupReference> listByPrefix(String orgNamePrefix) {
try {
log.debug("Listing user's organisations starting with '{}'", orgNamePrefix);
String[] namePrefixParts = orgNamePrefix.toLowerCase().split("/");
String orgNamePrefixLowercase = namePrefixParts.length > 0 ? namePrefixParts[0] : "";
String teamNameLowercase = namePrefixParts.length > 1 ? namePrefixParts[1] : "";
Set<String> ghOrgs = ghOrganisationCache.getOrganizationsForCurrentUser();
log.debug("Full list of user's organisations: {}", ghOrgs);
Builder<GroupReference> orgGroups = new ImmutableSet.Builder<>();
for (String organizationName : ghOrgs) {
if (organizationName.toLowerCase().startsWith(orgNamePrefixLowercase)) {
GroupReference teamGroupRef = GitHubOrganisationGroup.groupReference(organizationName);
if ((orgNamePrefixLowercase.length() > 0 && orgNamePrefix.endsWith("/"))
|| teamNameLowercase.length() > 0) {
for (String teamName : ghOrganisationCache.getTeamsForCurrentUser(organizationName)) {
if (teamName.toLowerCase().startsWith(teamNameLowercase)) {
orgGroups.add(GitHubTeamGroup.groupReference(teamGroupRef, teamName));
}
}
} else {
orgGroups.add(teamGroupRef);
}
}
}
return orgGroups.build();
} catch (ExecutionException e) {
log.warn("Cannot get GitHub organisations matching '" + orgNamePrefix + "'", e);
}
return Collections.emptySet();
}