in src/main/java/com/cisco/gerrit/plugins/slack/PublishEventListener.java [55:112]
public void onEvent(Event event) {
try {
ProjectConfig config;
MessageGenerator messageGenerator;
if (event instanceof PatchSetCreatedEvent) {
PatchSetCreatedEvent patchSetCreatedEvent;
patchSetCreatedEvent = (PatchSetCreatedEvent) event;
config = new ProjectConfig(configFactory, patchSetCreatedEvent.change.get().project);
messageGenerator = MessageGeneratorFactory.newInstance(patchSetCreatedEvent, config);
} else if (event instanceof ChangeMergedEvent) {
ChangeMergedEvent changeMergedEvent;
changeMergedEvent = (ChangeMergedEvent) event;
config = new ProjectConfig(configFactory, changeMergedEvent.change.get().project);
messageGenerator = MessageGeneratorFactory.newInstance(changeMergedEvent, config);
} else if (event instanceof CommentAddedEvent) {
CommentAddedEvent commentAddedEvent;
commentAddedEvent = (CommentAddedEvent) event;
config = new ProjectConfig(configFactory, commentAddedEvent.change.get().project);
messageGenerator = MessageGeneratorFactory.newInstance(commentAddedEvent, config);
} else if (event instanceof ReviewerAddedEvent) {
ReviewerAddedEvent reviewerAddedEvent;
reviewerAddedEvent = (ReviewerAddedEvent) event;
config = new ProjectConfig(configFactory, reviewerAddedEvent.change.get().project);
messageGenerator = MessageGeneratorFactory.newInstance(reviewerAddedEvent, config);
} else if (event instanceof WorkInProgressStateChangedEvent) {
WorkInProgressStateChangedEvent wipStateChangedEvent;
wipStateChangedEvent = (WorkInProgressStateChangedEvent) event;
config = new ProjectConfig(configFactory, wipStateChangedEvent.change.get().project);
messageGenerator = MessageGeneratorFactory.newInstance(wipStateChangedEvent, config);
} else {
LOGGER.debug("Event " + event + " not currently supported");
config = new ProjectConfig(configFactory, allProjectsName.get());
messageGenerator = MessageGeneratorFactory.newInstance(event);
}
if (messageGenerator.shouldPublish()) {
WebhookClient client;
client = new WebhookClient(config);
client.publish(messageGenerator.generate(), config.getWebhookUrl());
}
} catch (Throwable e) {
LOGGER.error("Event " + event + " processing failed", e);
}
}