PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / symfony / console / CI / GithubActionReporter.php
independent-analytics / vendor / symfony / console / CI Last commit date
GithubActionReporter.php 2 years ago
GithubActionReporter.php
78 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace IAWP_SCOPED\Symfony\Component\Console\CI;
12
13 use IAWP_SCOPED\Symfony\Component\Console\Output\OutputInterface;
14 /**
15 * Utility class for Github actions.
16 *
17 * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
18 * @internal
19 */
20 class GithubActionReporter
21 {
22 private $output;
23 /**
24 * @see https://github.com/actions/toolkit/blob/5e5e1b7aacba68a53836a34db4a288c3c1c1585b/packages/core/src/command.ts#L80-L85
25 */
26 private const ESCAPED_DATA = ['%' => '%25', "\r" => '%0D', "\n" => '%0A'];
27 /**
28 * @see https://github.com/actions/toolkit/blob/5e5e1b7aacba68a53836a34db4a288c3c1c1585b/packages/core/src/command.ts#L87-L94
29 */
30 private const ESCAPED_PROPERTIES = ['%' => '%25', "\r" => '%0D', "\n" => '%0A', ':' => '%3A', ',' => '%2C'];
31 public function __construct(OutputInterface $output)
32 {
33 $this->output = $output;
34 }
35 public static function isGithubActionEnvironment() : bool
36 {
37 return \false !== \getenv('GITHUB_ACTIONS');
38 }
39 /**
40 * Output an error using the Github annotations format.
41 *
42 * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-error-message
43 */
44 public function error(string $message, string $file = null, int $line = null, int $col = null) : void
45 {
46 $this->log('error', $message, $file, $line, $col);
47 }
48 /**
49 * Output a warning using the Github annotations format.
50 *
51 * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-warning-message
52 */
53 public function warning(string $message, string $file = null, int $line = null, int $col = null) : void
54 {
55 $this->log('warning', $message, $file, $line, $col);
56 }
57 /**
58 * Output a debug log using the Github annotations format.
59 *
60 * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-debug-message
61 */
62 public function debug(string $message, string $file = null, int $line = null, int $col = null) : void
63 {
64 $this->log('debug', $message, $file, $line, $col);
65 }
66 private function log(string $type, string $message, string $file = null, int $line = null, int $col = null) : void
67 {
68 // Some values must be encoded.
69 $message = \strtr($message, self::ESCAPED_DATA);
70 if (!$file) {
71 // No file provided, output the message solely:
72 $this->output->writeln(\sprintf('::%s::%s', $type, $message));
73 return;
74 }
75 $this->output->writeln(\sprintf('::%s file=%s,line=%s,col=%s::%s', $type, \strtr($file, self::ESCAPED_PROPERTIES), \strtr($line ?? 1, self::ESCAPED_PROPERTIES), \strtr($col ?? 0, self::ESCAPED_PROPERTIES), $message));
76 }
77 }
78