Skip to content

Instantly share code, notes, and snippets.

@gamerson
Created April 20, 2020 20:30
Show Gist options
  • Select an option

  • Save gamerson/12ff1cc6b7c7a0db090bcb47d46eed4e to your computer and use it in GitHub Desktop.

Select an option

Save gamerson/12ff1cc6b7c7a0db090bcb47d46eed4e to your computer and use it in GitHub Desktop.
GroupBy example
private void _processRepositoryInvitations() throws IOException {
RepositoryInvitationService repositoryInvitationService = new RepositoryInvitationService(_gitHubClient);
List<RepositoryInvitation> repositoryInvitations = repositoryInvitationService.getUserRepositoryInvitations();
Map<String, List<RepositoryInvitation>> invitesByType = repositoryInvitations.stream(
).collect(
Collectors.groupingBy(
repoInvite -> {
InviteUser inviter = repoInvite.getInviter();
UserService userService = new UserService(_gitHubClient);
try {
User user = userService.getUser(inviter.getLogin());
OrganizationService organizationService = new OrganizationService(_gitHubClient);
List<User> organizations = organizationService.getOrganizations(user.getLogin());
boolean isLiferayOrg = organizations.stream(
).map(
User::getLogin
).filter(
login -> login.equals("liferay")
).findAny(
).isPresent();
if (isLiferayOrg) {
return "accept";
}
else {
return "decline";
}
}
catch (IOException e) {
_logError(e, "Unable to filter repository invitation {}", repoInvite.getHtmlUrl());
}
return "NOP";
}
)
);
invitesByType.get("accept").stream().forEach(repoInvite -> {
try {
repositoryInvitationService.acceptRepositoryInvitation(repoInvite.getId());
_logger.info("Accepted invitation to collaborate on repository: {}", repoInvite.getRepository());
}
catch (IOException e) {
_logError(e, "Unable to accept invitation to collaborate on repository: {}", repoInvite.getRepository());
}
});
invitesByType.get("decline").stream().forEach(repoInvite -> {
try {
repositoryInvitationService.declineRepositoryInvitation(repoInvite.getId());
_logger.info("Declined invitation to collaborate on repository: {}", repoInvite.getRepository());
}
catch (IOException e) {
_logError(e, "Unable to decline invitation to collaborate on repository: {}", repoInvite.getRepository());
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment