diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7158bae..d498fa5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,41 +7,34 @@ on: jobs: run: - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: php: - - '7.4' - - '8.0' - '8.1' - symfony-versions: ['none'] + - '8.2' coverage: ['none'] + symfony-versions: + - '5.4.*' + - '6.0.*' + - '6.1.*' + - '6.2.*' + - '7.0.*' + exclude: + - php: '8.1' + symfony-versions: '7.0.*' include: - - symfony-versions: '4.4.*' - php: '7.4' - - symfony-versions: '4.4.*' - php: '8.0' - - symfony-versions: '4.4.*' - php: '8.1' - - symfony-versions: '5.3.*' - php: '7.4' - - symfony-versions: '5.3.*' - php: '8.0' - - symfony-versions: '5.3.*' - php: '8.1' - - symfony-versions: '5.4.*' - php: '8.0' - - symfony-versions: '5.4.*' - php: '8.1' - - symfony-versions: '6.0.*' - php: '8.0' - - symfony-versions: '6.0.*' - php: '8.1' - - description: 'Log Code Coverage' + - php: '8.1' + coverage: 'none' + symfony-versions: 'none' + - php: '8.2' + coverage: 'none' symfony-versions: 'none' - php: '8.1' + - description: 'Log Code Coverage' + php: '8.2' coverage: 'xdebug' + symfony-versions: 'none' name: PHP ${{ matrix.php }} Symfony ${{ matrix.symfony-versions }} ${{ matrix.description }} steps: diff --git a/.github/workflows/gitleaks.yaml b/.github/workflows/gitleaks.yaml deleted file mode 100644 index be1b555..0000000 --- a/.github/workflows/gitleaks.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: gitleaks - -on: - pull_request: - push: - branches: [ master, develop ] - -jobs: - gitleaks: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - - name: Run gitleaks - uses: zricethezav/gitleaks-action@master \ No newline at end of file diff --git a/composer.json b/composer.json index a581a41..e2427d1 100644 --- a/composer.json +++ b/composer.json @@ -3,6 +3,7 @@ "description": "Sentry monolog logging bundle", "homepage": "https://github.com/MacPaw/sentry-monolog-adapter", "type": "symfony-bundle", + "version": "1.0.0", "keywords": [ "MacPaw", "Symfony", @@ -26,18 +27,18 @@ } ], "require": { - "php": "^7.4 || ^8.0", - "symfony/console": "^4.4 || ^5.0 || ^6.0", - "symfony/dotenv": "^4.4 || ^5.0 || ^6.0", + "php": "^8.1", + "symfony/console": "^5.4 || ^6.0 || ^7.0", + "symfony/dotenv": "^5.4 || ^6.0 || ^7.0", "symfony/monolog-bundle": "^3.0", "sentry/sentry-symfony": "^4.0", - "symfony/messenger": "^4.4 || ^5.0 || ^6.0" + "symfony/messenger": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "phpstan/phpstan": "0.12.*", + "phpstan/phpstan": "^1.3", "squizlabs/php_codesniffer": "3.5.*", - "symfony/phpunit-bridge": "^4.4 || ^5.0 || ^6.0", - "symfony/yaml": "^4.4 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "autoload": { "psr-4": { diff --git a/phpunit.xml.dist b/phpunit.xml.dist index c522b28..4c8a6db 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -12,7 +12,7 @@ - + diff --git a/src/DependencyInjection/SentryMonologAdapterExtension.php b/src/DependencyInjection/SentryMonologAdapterExtension.php index 499f8ec..77f7b4b 100644 --- a/src/DependencyInjection/SentryMonologAdapterExtension.php +++ b/src/DependencyInjection/SentryMonologAdapterExtension.php @@ -12,7 +12,7 @@ class SentryMonologAdapterExtension extends Extension { /** - * @param array $configs + * @param array $configs * * {@inheritdoc} */ @@ -28,7 +28,7 @@ public function load(array $configs, ContainerBuilder $container): void } /** - * @param array $config + * @param array> $config */ private function loadMessengerLoggingMiddleware( array $config, @@ -55,7 +55,7 @@ private function loadMessengerLoggingMiddleware( } /** - * @param array $config + * @param array> $config */ private function loadMonologHandlerDecorator( array $config, diff --git a/src/Monolog/Handler/MonologHandlerDecorator.php b/src/Monolog/Handler/MonologHandlerDecorator.php index a963148..30dbc91 100644 --- a/src/Monolog/Handler/MonologHandlerDecorator.php +++ b/src/Monolog/Handler/MonologHandlerDecorator.php @@ -5,15 +5,13 @@ namespace SentryMonologAdapter\Monolog\Handler; use Monolog\Handler\AbstractProcessingHandler; +use Monolog\LogRecord; use Sentry\Monolog\Handler; use Sentry\State\HubInterface; use Sentry\State\Scope; use function Sentry\withScope; -/** - * @phpstan-import-type FormattedRecord from \Monolog\Handler\AbstractProcessingHandler - */ class MonologHandlerDecorator extends AbstractProcessingHandler { private Handler $sentryHandler; @@ -27,19 +25,21 @@ public function __construct(HubInterface $hub, Handler $sentryHandler) } /** - * @phpstan-param FormattedRecord $record + * @phpstan-param LogRecord $record */ - protected function write(array $record): void + protected function write(LogRecord $record): void { $this->hub->withScope(function (Scope $scope) use ($record): void { - if (isset($record['context']['extra']) && \is_array($record['context']['extra'])) { - foreach ($record['context']['extra'] as $key => $value) { + $context = $record->context; + + if (isset($context['extra']) && \is_array($context['extra'])) { + foreach ($context['extra'] as $key => $value) { $scope->setExtra((string) $key, $value); } } - if (isset($record['context']['tags']) && \is_array($record['context']['tags'])) { - foreach ($record['context']['tags'] as $key => $value) { + if (isset($context['tags']) && \is_array($context['tags'])) { + foreach ($context['tags'] as $key => $value) { $scope->setTag($key, $value); } } diff --git a/src/Processor/ExceptionProcessor.php b/src/Processor/ExceptionProcessor.php index 1345b2b..ec096f8 100644 --- a/src/Processor/ExceptionProcessor.php +++ b/src/Processor/ExceptionProcessor.php @@ -9,9 +9,9 @@ class ExceptionProcessor { /** - * @param array $record + * @param array $record * - * @return array[] + * @return array */ public function __invoke(array $record): array { @@ -36,10 +36,10 @@ public function __invoke(array $record): array /** * setExtra. * - * @param array[] $record - * @param array[] $parameters + * @param array> $record + * @param array $parameters * - * @return array[] + * @return array> */ private function setExtra(array $record, array $parameters): array { diff --git a/src/SentryMonologAdapterBundle.php b/src/SentryMonologAdapterBundle.php index 24f46d0..007d735 100644 --- a/src/SentryMonologAdapterBundle.php +++ b/src/SentryMonologAdapterBundle.php @@ -8,5 +8,4 @@ class SentryMonologAdapterBundle extends Bundle { - } diff --git a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php index e45faba..fc00497 100644 --- a/tests/Integration/Messenger/MonologHandlerDecoratorTest.php +++ b/tests/Integration/Messenger/MonologHandlerDecoratorTest.php @@ -4,7 +4,9 @@ namespace SentryMonologAdapter\Tests\Integration\Messenger; +use Monolog\Level; use Monolog\Logger; +use Monolog\LogRecord; use PHPUnit\Framework\TestCase; use Sentry\ClientInterface; use Sentry\Event; @@ -16,14 +18,14 @@ class MonologHandlerDecoratorTest extends TestCase { /** - * @param array $record - * @param array $expectedExtra - * @param array $expectedTags + * @param LogRecord $record + * @param array $expectedExtra + * @param array $expectedTags * * @dataProvider handleDataProvider */ public function testHandle( - array $record, + LogRecord $record, array $expectedExtra, array $expectedTags ): void { @@ -55,12 +57,12 @@ public function handleDataProvider(): array { return [ [ - [ - 'message' => 'test', - 'level' => Logger::DEBUG, - 'level_name' => Logger::getLevelName(Logger::DEBUG), - 'channel' => 'channel.test', - 'context' => [ + new LogRecord( + new \DateTimeImmutable(), + 'channel.test', + Level::Debug, + 'test', + [ 'extra' => [ 'id' => 'test_id', 'message' => 'test_message' @@ -69,8 +71,8 @@ public function handleDataProvider(): array 'test_key' => 'test_value' ] ], - 'extra' => [] - ], + [] + ), [ 'id' => 'test_id', 'message' => 'test_message', @@ -82,14 +84,14 @@ public function handleDataProvider(): array ] ], [ - [ - 'message' => 'test', - 'level' => Logger::DEBUG, - 'level_name' => Logger::getLevelName(Logger::DEBUG), - 'channel' => 'channel.test', - 'context' => [], - 'extra' => [] - ], + new LogRecord( + new \DateTimeImmutable(), + 'channel.test', + Level::Debug, + 'test', + [], + [] + ), [ 'monolog.channel' => 'channel.test', 'monolog.level' => Logger::getLevelName(Logger::DEBUG),