/** * Create an issue from the sent request * @param null $message * @param null $code * @param null $severity * @param null $path * @param null $lineno * @param null $trace * @return array * @throws ErrorException * @throws InvalidArgumentException * @throws MissingArgumentException * @throws ParseException */ public static function create($message = null, $code = null, $severity = null, $path = null, $lineno = null, $trace = null) { static::loadConfig(); if (null === array_unique([$message, $code, $severity, $path, $lineno, $trace])) { throw new ErrorException('At least one parameter must be set.'); } $issue = new GithubIssue($message, $code, $severity, $path, $lineno, $trace); return $issue->commit(static::$config['you']['username'], static::$config['you']['password'], static::$config['repo']['author'], static::$config['repo']['name']); }
/** * GithubIssue constructor. * Internally formats the Github issue title and message * @param string $message * @param int $code * @param int $severity * @param string $path * @param int $lineno * @param string $trace */ public function __construct($message = null, $code = null, $severity = null, $path = null, $lineno = null, $trace = null) { // Default message if (null === $message) { $message = 'An error occured.'; } // Format the title under 50 characters $this->title = GithubIssue::formatTitle($path, $lineno, $message); // Only display a two-parent-directories-deep path, for readability $shortPath = GithubIssue::formatPath($path); $bodyContents = []; // Head table (Code and Severity) if (null !== $code || null !== $severity) { $bodyContents[] = GithubIssue::formatTable($code, $severity); } // $path:$line if (null !== $path) { $pathText = '**Path**' . PHP_EOL . $shortPath; if (null !== $lineno) { $pathText .= ':**' . $lineno . '**'; } $bodyContents[] = $pathText; } if (null !== $message) { $bodyContents[] = '**Message**' . PHP_EOL . $message; } if (null !== $trace) { $bodyContents[] = '**Stack trace**' . PHP_EOL . '```' . PHP_EOL . $trace . PHP_EOL . '```'; } // Format the body $this->body = GithubIssue::formatBody($bodyContents); }