private function createIssue(GadgetInterface $gadget, $path, $message, $line, $level) { $issue = new Issue($gadget, $message); $issue->setLevel($level); $issue->setFile($path . '/foo.php'); $issue->setLine($line); return $issue; }
/** * @param MarkdownBuilder $markdown * @param Issue $issue */ protected function renderIssue(MarkdownBuilder $markdown, Issue $issue) { $header = $issue->getTitle(); if ($issue->getLine()) { $header .= ' on line ' . $issue->getLine(); } $markdown->h3($header); $markdown->p($issue->getDescription()); }
/** * @param string $file * @param array $data * @return Issue */ private function createIssue($file, array $data) { $issue = new Issue($this, trim($data['#'])); $issue->setLevel(Issue::LEVEL_WARNING); $issue->setFile($file); $issue->setLine($data['@beginline']); $issue->setExtraInformation(['rule' => $data['@rule'], 'ruleset' => $data['@ruleset'], 'externalInfoUrl' => $data['@externalInfoUrl'], 'priority' => $data['@priority']]); return $issue; }
/** * @param string $filename * @param array $options * @param string $comment * @return Result */ private function processComment($filename, array $options, $comment) { $result = new Result(); foreach (explode("\n", $comment['content']) as $lineOffset => $line) { foreach ($options['blacklist'] as $blacklistedWord => $errorLevel) { if (stristr($line, $blacklistedWord) === false) { continue; } $issue = new Issue($this, sprintf('found "%s" in a comment', $blacklistedWord)); $issue->setLevel($errorLevel); $issue->setFile($filename); $issue->setLine($comment['line'] + $lineOffset); $result->addIssue($issue); } } return $result; }
/** * @param string $path * @param array $options * @param AbstractLogger $logger * @return Result */ public function run($path, array $options, AbstractLogger $logger) { $result = new Result(); $files = FilesystemHelper::findFiles($path, $options['files'], '*.twig'); foreach ($files as $file) { try { $this->twig->parse($this->twig->tokenize(file_get_contents($file), $file)); } catch (\Twig_Error $e) { $message = get_class($e) . ': ' . $e->getRawMessage(); $issue = new Issue($this, $message); $issue->setLevel($options['error_level']); $issue->setFile($file); $issue->setLine($e->getTemplateLine()); $result->addIssue($issue); } } return $result; }
/** * @param string $path * @param Issue $issue * @param int $around * @param bool $attr * @return string */ public static function createCodeSnippet($path, Issue $issue, $around = 5, $attr = false) { $snippet = SnippetHelper::createSnippetByFile(Path::join($path, $issue->getFile()), $issue->getLine(), $around); $extension = pathinfo($issue->getFile(), PATHINFO_EXTENSION); $offset = max($issue->getLine() - $around, 1); $options = []; if ($attr) { $options = ['file' => $issue->getFile(), 'line' => $issue->getLine(), 'offset' => $offset]; } return (new MarkdownBuilder())->code($snippet, $extension, $options)->getMarkdown(); }
/** * @param string $message * @param Node $node * @param string $level */ private function addIssue($message, Node $node = null, $level = Issue::LEVEL_ERROR) { $issue = new Issue($this->gadget, $message); $issue->setLevel($level); $issue->setFile($this->currentFile); if ($node) { $issue->setLine($node->getLine()); } $this->result->addIssue($issue); }
/** * @param array $data * @return Issue */ private function createIssue(array $data) { $issue = new Issue($this, $data['message']); $issue->setFile($data['file']); $issue->setLine($data['line']); switch ($data['type']) { case 'error': $issue->setLevel(Issue::LEVEL_ERROR); break; case 'warning': $issue->setLevel(Issue::LEVEL_WARNING); break; } $issue->setExtraInformation(['source' => $data['source'], 'severity' => $data['severity'], 'column' => $data['column']]); return $issue; }
/** * @param string $path * @param string $message * @param int $line * @param string $level * * @return Issue */ private function createIssue($path, $message, $line, $level) { $issue = new Issue($this->OUT, $message); $issue->setLevel($level); $issue->setFile($path . '/Foo.php'); $issue->setLine($line); return $issue; }
/** * @param array $options * @param array $method * @param string $className * @param string $file * @param DocBlock\Tag\ParamTag $docBlockParam * * @return Issue */ public function createIssueForMissingTypeInDocBlock(array $options, array $method, $className, $file, DocBlock\Tag\ParamTag $docBlockParam) { $issue = new Issue($this->gadget, sprintf('Missing type for variable %s in docblock of "%s"', $docBlockParam->getName(), $className)); $issue->setLevel($options['missing_type_in_docblock']); $issue->setLine($method['startLine']); $issue->setFile($file); return $issue; }
/** * @param string $composer * @param string $lib * @param string $version * @param array $advisory * @param string $level * @return Issue */ private function createIssue($composer, $lib, $version, array $advisory, $level) { $message = sprintf('package "%s" with the version "%s" have known vulnerabilities', $lib, $version); $issue = new Issue($this, $message); $issue->setDescription($this->createDescription($advisory['title'], $advisory['cve'], $advisory['link'])); $issue->setFile($composer); $issue->setLevel($level); $issue->setExtraInformation(['lib' => $lib, 'version' => $version, 'link' => $advisory['link'], 'cve' => $advisory['cve']]); return $issue; }
/** * @param AnalyseIssue $issue * @return string */ private function hash(AnalyseIssue $issue) { return md5($issue->getGadget() . $issue->getFile() . $issue->getLine() . $issue->getTitle()); }