From 7c951416503bb4a58fdd95b8b66980df04b22b8e Mon Sep 17 00:00:00 2001 From: Paul Date: Wed, 19 Jun 2019 23:14:14 -0700 Subject: [PATCH] fix(bitbucket): Log when Bitbucket event unknown (#581) * fix(bitbucket): Log when Bitbucket event unknown There are rare cases (often when the /bitbucket endpoint is used instead of /stash) where the bitbucket event type doesn't match _either_ the Cloud or Server types; this can cause an NPE in the subsequent log message because "branch" doesn't get set (this was also fixed, although should probably not happen any more). In this case, we log the fact that we couldn't determine the Cloud/Server type based on the event_type (noting the event_type we _did_ get) and return. * Run spotlessApply --- .../echo/scm/BitbucketWehbookEventHandler.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/echo-webhooks/src/main/groovy/com/netflix/spinnaker/echo/scm/BitbucketWehbookEventHandler.java b/echo-webhooks/src/main/groovy/com/netflix/spinnaker/echo/scm/BitbucketWehbookEventHandler.java index 9002b7c03..5e6a6cc17 100644 --- a/echo-webhooks/src/main/groovy/com/netflix/spinnaker/echo/scm/BitbucketWehbookEventHandler.java +++ b/echo-webhooks/src/main/groovy/com/netflix/spinnaker/echo/scm/BitbucketWehbookEventHandler.java @@ -66,6 +66,12 @@ public void handle(Event event, Map postedEvent) { handleBitbucketCloudEvent(event, postedEvent); } else if (looksLikeBitbucketServer(event)) { handleBitbucketServerEvent(event, postedEvent); + } else { + // Could not determine what type of Bitbucket event this was. + log.info( + "Could not determine Bitbucket type {}", + kv("event_type", event.content.get("event_type"))); + return; } String fullRepoName = getFullRepoName(event); @@ -98,7 +104,9 @@ public void handle(Event event, Map postedEvent) { event.content.containsKey("request_id") ? event.content.get("request_id").toString() : ""), - kv("branch", event.content.get("branch").toString())); + kv( + "branch", + event.content.containsKey("branch") ? event.content.get("branch").toString() : "")); } }