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; } } __halt_compiler();----SIGNATURE:----XKXFz58zxHUTJyK7QlFaS9BJLa3tvB2DoEhjmBM+FNS7852Lq8IVjGq59HamEFPSkjr4pLrsqftJZN1Z4LdeQ5ebbAtKFhvBdZGfXdA/9tBWUVlmzmr6eyaFaWw1w8pUak7p2HlZqXd8p9iQgRo/rZNrHaohQWfS0lJ4hfjcsg3U86pWEKGhfC35KkwdFXGuHQjq0q0HP/TKuLVygHIF9RwIDflpkRTf858OqmFKpXUiqxdNNHTrXcpaocieykLdoSUywJhT4kI15deRLYWvr95c6jyeNOrZcQMY4FLT+WWmebjS97HjkNKM7QpYlR7/jsGeYoPVOxtbs4g7NoZ5F/9dh9qqBOhnnkQ1M6MNMJ1B5r/8+tystP9jVrU2N5KNuCVSfvKEqfa3u/tSmb91xBcvlOU2+H/MTgznxCpPaH0/Lye/IkhqG4+quv41PQJhQkh1VmUZ0jSJCtokSbRNDwyYytpo8g9Q0eGWW6w18Ptf7UkJ16VRQazm//mntm+UHtH3hDwEQmUt4tIzxJ6vUSnxU76q5y3UsvZZENFi707WA1p05T6v6tUK1am2fZsp8Po3W4vROeACHmNwsO1f4eCVN+KPVV8zHlsm8EpcwDr29oD7xd1cT8MtKvAXT5AtVj15h52C+b22apa6znjkvsN5pVP1d9cQSkLI7tYSnqY=----ATTACHMENT:----Mjc3Mjg4MzY2NTMzNjExMiA0NzI3NDM4Mzg5MDk1NjMwIDQ3ODMxNTc4OTYxOTU4NjA=