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:----Xrhhzm5gyDxH8Kv2AmjTu7IIW2XbfoozHb5BJIuW1Tw7pZ4gPLhDIEhmdAF5VlnTvm7A1JV9cZ95lIj89P7dTmxjjPKHE67UaPzFoCyZGQzN61OAFw+5Ttqv/NWsWbMWnxoR1b1sOaTbZdwZ9mXJi2OKLxbPh0GX7lU3CKmN/xNT5jj2e4M4NmXBPxCQLGjZo6sBSkaBjCb3tiKkZRTtuL7l8kyVvGJ/FSoqSJ1D+b1ZHb+iK6uyLl69c2QGqtnRtwtFfaWHVvKZVzy3FqqQ+BYb1QzCgldPu0f9O+QOjleRE7yVxELhM6vmHofQtRvKmN6oxlIbKEiIowTzYAzJFp+pJLNEHPmuP3ay8rXRGv3lo9QPnEAV7ShHfZrLrEhJX4BXFtjN5RdIbTz4ES8QjwZr/MCzayLXWDwaFBzsKapBlMDAXIYiIi9d1U23li/2NkHtoVQzz27QY5qN/whjDlWON//kC5Bp4E+vkNK11aely3+QxzMYOFVtugZ9qcn8grVf362zANxtPShx77IQ5zAJwMxKo9c4u/3vitSC/WEZ0i9oin1ikSC6U9097ULFN1A9lj1eDVXxKWmyB1kWOyDQ/rdfbRFXB1Sut3NZ1iWK2EzQNNZDP370jTJHRdqAON3EM+8ECxoBKKguo5/goiL89Ddmz9HzydeM30730Rs=----ATTACHMENT:----MTMwNzY0MzYzOTAzODU3MiAzNTg2MjY3Mjg1NDI5ODY3IDQxNDM2NjExNDEzOTMyMTQ=