/**
  * public method to start processing the request
  *
  * @param string $hook
  */
 public function process($hook)
 {
     $entityBody = file_get_contents('php://input');
     $json = json_decode($entityBody);
     if ($GLOBALS['config']['gerrit']['webhookToken'] != $json->token) {
         exit;
     }
     if ($json->project !== 'Packages/TYPO3.CMS') {
         // only core patches please...
         exit;
     }
     $patchId = (int) str_replace('http://review.typo3.org/', '', $json->{'change-url'});
     $patchSet = intval($json->patchset);
     $branch = $json->branch;
     switch ($hook) {
         case 'patchset-created':
             if ($patchSet == 1 && $branch == 'master') {
                 foreach ($GLOBALS['config']['gerrit'][$hook]['channels'] as $channel) {
                     $item = $this->queryGerrit('change:' . $patchId);
                     $item = $item[0];
                     $created = substr($item->created, 0, 19);
                     $message = new Message();
                     $message->setText(' ');
                     $attachment = new Message\Attachment();
                     $attachment->setColor(Message\Attachment::COLOR_NOTICE);
                     $attachment->setTitle('[NEW] ' . $item->subject);
                     $attachment->setAuthorName($item->owner->name);
                     $text = "Branch: *{$branch}* | :calendar: _{$created}_ | ID: {$item->_number}\n";
                     $text .= ":link: <https://review.typo3.org/{$item->_number}|Review now>";
                     $attachment->setText($text);
                     $attachment->setFallback($text);
                     $message->addAttachment($attachment);
                     $payload = json_decode($message->getJSON());
                     $payload->channel = $channel;
                     $this->postToSlack($payload);
                 }
             }
             break;
         case 'change-merged':
             foreach ($GLOBALS['config']['gerrit'][$hook]['channels'] as $channel) {
                 $item = $this->queryGerrit('change:' . $patchId);
                 $item = $item[0];
                 $created = substr($item->created, 0, 19);
                 $message = new Message();
                 $message->setText(' ');
                 $attachment = new Message\Attachment();
                 $attachment->setColor(Message\Attachment::COLOR_GOOD);
                 $attachment->setTitle(':white_check_mark: [MERGED] ' . $item->subject);
                 $attachment->setAuthorName($item->owner->name);
                 $text = "Branch: {$branch} | :calendar: {$created} | ID: {$item->_number}\n";
                 $text .= ":link: <https://review.typo3.org/{$item->_number}|Goto Review>";
                 $attachment->setText($text);
                 $attachment->setFallback($text);
                 $message->addAttachment($attachment);
                 $payload = json_decode($message->getJSON());
                 $payload->channel = $channel;
                 $this->postToSlack($payload);
             }
             break;
         default:
             exit;
             break;
     }
 }