class GithubActionError
Hierarchy
- class \Composer\Console\GithubActionError
Expanded class hierarchy of GithubActionError
1 file declares its use of GithubActionError
- Installer.php in vendor/
composer/ composer/ src/ Composer/ Installer.php
File
-
vendor/
composer/ composer/ src/ Composer/ Console/ GithubActionError.php, line 18
Namespace
Composer\ConsoleView source
final class GithubActionError {
/**
* @var IOInterface
*/
protected $io;
public function __construct(IOInterface $io) {
$this->io = $io;
}
public function emit(string $message, ?string $file = null, ?int $line = null) : void {
if (Platform::getEnv('GITHUB_ACTIONS') && !Platform::getEnv('COMPOSER_TESTS_ARE_RUNNING')) {
$message = $this->escapeData($message);
if ($file && $line) {
$file = $this->escapeProperty($file);
$this->io
->write("::error file=" . $file . ",line=" . $line . "::" . $message);
}
elseif ($file) {
$file = $this->escapeProperty($file);
$this->io
->write("::error file=" . $file . "::" . $message);
}
else {
$this->io
->write("::error ::" . $message);
}
}
}
private function escapeData(string $data) : string {
// see https://github.com/actions/toolkit/blob/4f7fb6513a355689f69f0849edeb369a4dc81729/packages/core/src/command.ts#L80-L85
$data = str_replace("%", '%25', $data);
$data = str_replace("\r", '%0D', $data);
$data = str_replace("\n", '%0A', $data);
return $data;
}
private function escapeProperty(string $property) : string {
// see https://github.com/actions/toolkit/blob/4f7fb6513a355689f69f0849edeb369a4dc81729/packages/core/src/command.ts#L87-L94
$property = str_replace("%", '%25', $property);
$property = str_replace("\r", '%0D', $property);
$property = str_replace("\n", '%0A', $property);
$property = str_replace(":", '%3A', $property);
$property = str_replace(",", '%2C', $property);
return $property;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
GithubActionError::$io | protected | property | |
GithubActionError::emit | public | function | |
GithubActionError::escapeData | private | function | |
GithubActionError::escapeProperty | private | function | |
GithubActionError::__construct | public | function |