/** * @param Commit $commit * @throws GitHookException * @throws GitException */ public function run(Commit $commit) { if ($this->job->isHealthy()) { $this->logger->debug('Jenkins job is healthy.'); return; } $this->logger->info('Jenkins job is not healthy...asserting that commit message contains {buildfix} hash'); $messageSubject = $commit->messageSubject(); $buildFixDirective = Directives::BUILD_FIX(); // Check if commit has buildfix directive if (preg_match("/{$buildFixDirective->value()}/", $messageSubject) > 0) { $this->logger->info("Commit has {$buildFixDirective} directive. It attempts to fix build"); return; } throw new GitHookException('Jenkins not healthy and commit does not fix it'); }