diff --git a/.idea/php.xml b/.idea/php.xml
index d81a23b..92abebe 100644
--- a/.idea/php.xml
+++ b/.idea/php.xml
@@ -125,6 +125,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/portal.iml b/.idea/portal.iml
index c3981c6..64bec86 100644
--- a/.idea/portal.iml
+++ b/.idea/portal.iml
@@ -7,6 +7,7 @@
+
@@ -28,7 +29,9 @@
+
+
@@ -52,7 +55,12 @@
+
+
+
+
+
@@ -89,6 +97,8 @@
+
+
@@ -98,9 +108,12 @@
+
+
+
@@ -111,6 +124,7 @@
+
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
index 59c585d..f590bf3 100644
--- a/app/Exceptions/Handler.php
+++ b/app/Exceptions/Handler.php
@@ -36,6 +36,10 @@ class Handler extends ExceptionHandler
*/
public function report(Throwable $exception)
{
+ if ($this->shouldReport($exception) && app()->bound('sentry')) {
+ app('sentry')->captureException($exception);
+ }
+
parent::report($exception);
}
diff --git a/composer.json b/composer.json
index 62b9e1e..6e50943 100644
--- a/composer.json
+++ b/composer.json
@@ -19,6 +19,7 @@
"laravel/slack-notification-channel": "^2.2",
"laravel/tinker": "^2.0",
"laravel/ui": "^2.0",
+ "sentry/sentry-laravel": "^2.0",
"vlucas/phpdotenv": "^5.2"
},
"require-dev": {
diff --git a/composer.lock b/composer.lock
index 0866a81..fa4e866 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "51b55f3b06042805d19c911a3a4456a7",
+ "content-hash": "32d5c8dc4479b4dcb3acfbe92909e029",
"packages": [
{
"name": "asm89/stack-cors",
@@ -110,6 +110,137 @@
],
"time": "2020-08-18T23:57:15+00:00"
},
+ {
+ "name": "clue/stream-filter",
+ "version": "v1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/php-stream-filter.git",
+ "reference": "aeb7d8ea49c7963d3b581378955dbf5bc49aa320"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/aeb7d8ea49c7963d3b581378955dbf5bc49aa320",
+ "reference": "aeb7d8ea49c7963d3b581378955dbf5bc49aa320",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Clue\\StreamFilter\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "A simple and modern approach to stream filtering in PHP",
+ "homepage": "https://github.com/clue/php-stream-filter",
+ "keywords": [
+ "bucket brigade",
+ "callback",
+ "filter",
+ "php_user_filter",
+ "stream",
+ "stream_filter_append",
+ "stream_filter_register"
+ ],
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-02T12:38:20+00:00"
+ },
+ {
+ "name": "composer/package-versions-deprecated",
+ "version": "1.11.99",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/package-versions-deprecated.git",
+ "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855",
+ "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1.0 || ^2.0",
+ "php": "^7 || ^8"
+ },
+ "replace": {
+ "ocramius/package-versions": "1.11.99"
+ },
+ "require-dev": {
+ "composer/composer": "^1.9.3 || ^2.0@dev",
+ "ext-zip": "^1.13",
+ "phpunit/phpunit": "^6.5 || ^7"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PackageVersions\\Installer",
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PackageVersions\\": "src/PackageVersions"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be"
+ }
+ ],
+ "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-08-25T05:50:16+00:00"
+ },
{
"name": "defuse/php-encryption",
"version": "v2.2.1",
@@ -928,6 +1059,56 @@
],
"time": "2019-07-01T23:21:34+00:00"
},
+ {
+ "name": "http-interop/http-factory-guzzle",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/http-interop/http-factory-guzzle.git",
+ "reference": "34861658efb9899a6618cef03de46e2a52c80fc0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/34861658efb9899a6618cef03de46e2a52c80fc0",
+ "reference": "34861658efb9899a6618cef03de46e2a52c80fc0",
+ "shasum": ""
+ },
+ "require": {
+ "guzzlehttp/psr7": "^1.4.2",
+ "psr/http-factory": "^1.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "^1.0"
+ },
+ "require-dev": {
+ "http-interop/http-factory-tests": "^0.5",
+ "phpunit/phpunit": "^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Http\\Factory\\Guzzle\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "An HTTP Factory using Guzzle PSR7",
+ "keywords": [
+ "factory",
+ "http",
+ "psr-17",
+ "psr-7"
+ ],
+ "time": "2018-07-31T19:32:56+00:00"
+ },
{
"name": "intervention/image",
"version": "2.5.1",
@@ -998,6 +1179,57 @@
],
"time": "2019-11-02T09:15:47+00:00"
},
+ {
+ "name": "jean85/pretty-package-versions",
+ "version": "1.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Jean85/pretty-package-versions.git",
+ "reference": "a917488320c20057da87f67d0d40543dd9427f7a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/a917488320c20057da87f67d0d40543dd9427f7a",
+ "reference": "a917488320c20057da87f67d0d40543dd9427f7a",
+ "shasum": ""
+ },
+ "require": {
+ "composer/package-versions-deprecated": "^1.8.0",
+ "php": "^7.0|^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0|^8.5|^9.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Jean85\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alessandro Lai",
+ "email": "alessandro.lai85@gmail.com"
+ }
+ ],
+ "description": "A wrapper for ocramius/package-versions to get pretty versions strings",
+ "keywords": [
+ "composer",
+ "package",
+ "release",
+ "versions"
+ ],
+ "time": "2020-09-14T08:43:34+00:00"
+ },
{
"name": "laravel/framework",
"version": "v8.0.0",
@@ -2307,6 +2539,273 @@
],
"time": "2018-07-02T15:55:56+00:00"
},
+ {
+ "name": "php-http/client-common",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/client-common.git",
+ "reference": "e37e46c610c87519753135fb893111798c69076a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/client-common/zipball/e37e46c610c87519753135fb893111798c69076a",
+ "reference": "e37e46c610c87519753135fb893111798c69076a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0",
+ "php-http/httplug": "^2.0",
+ "php-http/message": "^1.6",
+ "php-http/message-factory": "^1.0",
+ "psr/http-client": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0",
+ "symfony/options-resolver": "^2.6 || ^3.4.20 || ~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0",
+ "symfony/polyfill-php80": "^1.17"
+ },
+ "require-dev": {
+ "doctrine/instantiator": "^1.1",
+ "guzzlehttp/psr7": "^1.4",
+ "nyholm/psr7": "^1.2",
+ "phpspec/phpspec": "^5.1 || ^6.0",
+ "phpspec/prophecy": "^1.10.2",
+ "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3"
+ },
+ "suggest": {
+ "ext-json": "To detect JSON responses with the ContentTypePlugin",
+ "ext-libxml": "To detect XML responses with the ContentTypePlugin",
+ "php-http/cache-plugin": "PSR-6 Cache plugin",
+ "php-http/logger-plugin": "PSR-3 Logger plugin",
+ "php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Client\\Common\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Common HTTP Client implementations and tools for HTTPlug",
+ "homepage": "http://httplug.io",
+ "keywords": [
+ "client",
+ "common",
+ "http",
+ "httplug"
+ ],
+ "time": "2020-07-21T10:04:13+00:00"
+ },
+ {
+ "name": "php-http/discovery",
+ "version": "1.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/discovery.git",
+ "reference": "4366bf1bc39b663aa87459bd725501d2f1988b6c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/discovery/zipball/4366bf1bc39b663aa87459bd725501d2f1988b6c",
+ "reference": "4366bf1bc39b663aa87459bd725501d2f1988b6c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "nyholm/psr7": "<1.0"
+ },
+ "require-dev": {
+ "graham-campbell/phpspec-skip-example-extension": "^5.0",
+ "php-http/httplug": "^1.0 || ^2.0",
+ "php-http/message-factory": "^1.0",
+ "phpspec/phpspec": "^5.1 || ^6.1",
+ "puli/composer-plugin": "1.0.0-beta10"
+ },
+ "suggest": {
+ "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories",
+ "puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Discovery\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Finds installed HTTPlug implementations and PSR-7 message factories",
+ "homepage": "http://php-http.org",
+ "keywords": [
+ "adapter",
+ "client",
+ "discovery",
+ "factory",
+ "http",
+ "message",
+ "psr7"
+ ],
+ "time": "2020-09-22T13:31:04+00:00"
+ },
+ {
+ "name": "php-http/httplug",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/httplug.git",
+ "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/httplug/zipball/191a0a1b41ed026b717421931f8d3bd2514ffbf9",
+ "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0",
+ "php-http/promise": "^1.1",
+ "psr/http-client": "^1.0",
+ "psr/http-message": "^1.0"
+ },
+ "require-dev": {
+ "friends-of-phpspec/phpspec-code-coverage": "^4.1",
+ "phpspec/phpspec": "^5.1 || ^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Eric GELOEN",
+ "email": "geloen.eric@gmail.com"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "HTTPlug, the HTTP client abstraction for PHP",
+ "homepage": "http://httplug.io",
+ "keywords": [
+ "client",
+ "http"
+ ],
+ "time": "2020-07-13T15:43:23+00:00"
+ },
+ {
+ "name": "php-http/message",
+ "version": "1.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/message.git",
+ "reference": "2c7256e3c1aba0bfca70f099810f1c7712e00945"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/message/zipball/2c7256e3c1aba0bfca70f099810f1c7712e00945",
+ "reference": "2c7256e3c1aba0bfca70f099810f1c7712e00945",
+ "shasum": ""
+ },
+ "require": {
+ "clue/stream-filter": "^1.4.1",
+ "php": "^7.1",
+ "php-http/message-factory": "^1.0.2",
+ "psr/http-message": "^1.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0"
+ },
+ "require-dev": {
+ "akeneo/phpspec-skip-example-extension": "^1.0",
+ "coduo/phpspec-data-provider-extension": "^1.0",
+ "ergebnis/composer-normalize": "^2.1",
+ "ext-zlib": "*",
+ "guzzlehttp/psr7": "^1.0",
+ "henrikbjorn/phpspec-code-coverage": "^1.0",
+ "phpspec/phpspec": "^2.4",
+ "slim/slim": "^3.0",
+ "zendframework/zend-diactoros": "^1.0"
+ },
+ "suggest": {
+ "ext-zlib": "Used with compressor/decompressor streams",
+ "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
+ "slim/slim": "Used with Slim Framework PSR-7 implementation",
+ "zendframework/zend-diactoros": "Used with Diactoros Factories"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.8-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Message\\": "src/"
+ },
+ "files": [
+ "src/filters.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "HTTP Message related tools",
+ "homepage": "http://php-http.org",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7"
+ ],
+ "time": "2020-08-17T06:33:14+00:00"
+ },
{
"name": "php-http/message-factory",
"version": "v1.0.2",
@@ -2357,6 +2856,59 @@
],
"time": "2015-12-19T14:08:53+00:00"
},
+ {
+ "name": "php-http/promise",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/promise.git",
+ "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
+ "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
+ "phpspec/phpspec": "^5.1.2 || ^6.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Joel Wurtz",
+ "email": "joel.wurtz@gmail.com"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Promise used for asynchronous HTTP requests",
+ "homepage": "http://httplug.io",
+ "keywords": [
+ "promise"
+ ],
+ "time": "2020-07-07T09:29:14+00:00"
+ },
{
"name": "phpoption/phpoption",
"version": "1.7.5",
@@ -3136,6 +3688,240 @@
],
"time": "2020-08-18T17:17:46+00:00"
},
+ {
+ "name": "sentry/sdk",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/getsentry/sentry-php-sdk.git",
+ "reference": "908ea3fd0e7a19ccf4b53d1c247c44231595d008"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/908ea3fd0e7a19ccf4b53d1c247c44231595d008",
+ "reference": "908ea3fd0e7a19ccf4b53d1c247c44231595d008",
+ "shasum": ""
+ },
+ "require": {
+ "http-interop/http-factory-guzzle": "^1.0",
+ "sentry/sentry": "^3.0",
+ "symfony/http-client": "^4.3|^5.0"
+ },
+ "type": "metapackage",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
+ }
+ ],
+ "description": "This is a metapackage shipping sentry/sentry with a recommended HTTP client.",
+ "homepage": "http://sentry.io",
+ "keywords": [
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "log",
+ "logging",
+ "sentry"
+ ],
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2020-09-28T07:49:07+00:00"
+ },
+ {
+ "name": "sentry/sentry",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/getsentry/sentry-php.git",
+ "reference": "a35c6c71693a72f2fedb9b6f9644ced52268771d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/a35c6c71693a72f2fedb9b6f9644ced52268771d",
+ "reference": "a35c6c71693a72f2fedb9b6f9644ced52268771d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "guzzlehttp/promises": "^1.3",
+ "guzzlehttp/psr7": "^1.6",
+ "jean85/pretty-package-versions": "^1.5",
+ "ocramius/package-versions": "^1.8",
+ "php": "^7.2",
+ "php-http/async-client-implementation": "^1.0",
+ "php-http/client-common": "^1.5|^2.0",
+ "php-http/discovery": "^1.6.1",
+ "php-http/httplug": "^1.1|^2.0",
+ "php-http/message": "^1.5",
+ "psr/http-factory": "^1.0",
+ "psr/http-message-implementation": "^1.0",
+ "psr/log": "^1.0",
+ "symfony/options-resolver": "^3.4.4|^4.0|^5.0",
+ "symfony/polyfill-php80": "^1.17",
+ "symfony/polyfill-uuid": "^1.13.1"
+ },
+ "conflict": {
+ "php-http/client-common": "1.8.0",
+ "raven/raven": "*"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.16",
+ "http-interop/http-factory-guzzle": "^1.0",
+ "monolog/monolog": "^1.3|^2.0",
+ "php-http/mock-client": "^1.3",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^7.5.18",
+ "symfony/phpunit-bridge": "^4.3|^5.0",
+ "vimeo/psalm": "^3.4"
+ },
+ "suggest": {
+ "monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Sentry\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
+ }
+ ],
+ "description": "A PHP SDK for Sentry (http://sentry.io)",
+ "homepage": "http://sentry.io",
+ "keywords": [
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "log",
+ "logging",
+ "sentry"
+ ],
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2020-10-02T14:16:36+00:00"
+ },
+ {
+ "name": "sentry/sentry-laravel",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/getsentry/sentry-laravel.git",
+ "reference": "3c6b1da08087f428ab1a188af35483eb76ef6b1e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/3c6b1da08087f428ab1a188af35483eb76ef6b1e",
+ "reference": "3c6b1da08087f428ab1a188af35483eb76ef6b1e",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/support": "5.0 - 5.8 | ^6.0 | ^7.0 | ^8.0",
+ "php": "^7.2",
+ "sentry/sdk": "^3.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "2.16.*",
+ "laravel/framework": "^7.0",
+ "mockery/mockery": "1.3.*",
+ "orchestra/testbench": "^5.0",
+ "phpunit/phpunit": "^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev",
+ "dev-0.x": "0.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Sentry\\Laravel\\ServiceProvider",
+ "Sentry\\Laravel\\Tracing\\ServiceProvider"
+ ],
+ "aliases": {
+ "Sentry": "Sentry\\Laravel\\Facade"
+ }
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Sentry\\Laravel\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
+ }
+ ],
+ "description": "Laravel SDK for Sentry (https://sentry.io)",
+ "homepage": "https://sentry.io",
+ "keywords": [
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "laravel",
+ "log",
+ "logging",
+ "sentry"
+ ],
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2020-10-01T12:14:37+00:00"
+ },
{
"name": "swiftmailer/swiftmailer",
"version": "v6.2.3",
@@ -3718,6 +4504,167 @@
],
"time": "2020-08-17T10:01:29+00:00"
},
+ {
+ "name": "symfony/http-client",
+ "version": "v5.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client.git",
+ "reference": "4a5f2750b54e3cfc5b6711dd78fdbac6563ee7bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/4a5f2750b54e3cfc5b6711dd78fdbac6563ee7bf",
+ "reference": "4a5f2750b54e3cfc5b6711dd78fdbac6563ee7bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/log": "^1.0",
+ "symfony/http-client-contracts": "^2.2",
+ "symfony/polyfill-php73": "^1.11",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/service-contracts": "^1.0|^2"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "1.0",
+ "symfony/http-client-implementation": "1.1"
+ },
+ "require-dev": {
+ "amphp/http-client": "^4.2.1",
+ "amphp/http-tunnel": "^1.0",
+ "amphp/socket": "^1.1",
+ "guzzlehttp/promises": "^1.3.1",
+ "nyholm/psr7": "^1.0",
+ "php-http/httplug": "^1.0|^2.0",
+ "psr/http-client": "^1.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/http-kernel": "^4.4.13|^5.1.5",
+ "symfony/process": "^4.4|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony HttpClient component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-09-27T03:44:28+00:00"
+ },
+ {
+ "name": "symfony/http-client-contracts",
+ "version": "v2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client-contracts.git",
+ "reference": "3a5d0fe7908daaa23e3dbf4cee3ba4bfbb19fdd3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3a5d0fe7908daaa23e3dbf4cee3ba4bfbb19fdd3",
+ "reference": "3a5d0fe7908daaa23e3dbf4cee3ba4bfbb19fdd3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "suggest": {
+ "symfony/http-client-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\HttpClient\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to HTTP clients",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-09-07T11:33:47+00:00"
+ },
{
"name": "symfony/http-foundation",
"version": "v5.1.5",
@@ -3983,6 +4930,76 @@
],
"time": "2020-08-17T10:01:29+00:00"
},
+ {
+ "name": "symfony/options-resolver",
+ "version": "v5.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4c7e155bf7d93ea4ba3824d5a14476694a5278dd",
+ "reference": "4c7e155bf7d93ea4ba3824d5a14476694a5278dd",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony OptionsResolver Component",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-09-27T03:44:28+00:00"
+ },
{
"name": "symfony/polyfill-ctype",
"version": "v1.18.1",
@@ -4763,6 +5780,83 @@
],
"time": "2020-07-14T12:35:20+00:00"
},
+ {
+ "name": "symfony/polyfill-uuid",
+ "version": "v1.18.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-uuid.git",
+ "reference": "da48e2cccd323e48c16c26481bf5800f6ab1c49d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/da48e2cccd323e48c16c26481bf5800f6ab1c49d",
+ "reference": "da48e2cccd323e48c16c26481bf5800f6ab1c49d",
+ "shasum": ""
+ },
+ "require": {
+ "paragonie/random_compat": "~1.0|~2.0|~9.99",
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-uuid": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.18-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Uuid\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for uuid functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "uuid"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-07-14T12:35:20+00:00"
+ },
{
"name": "symfony/process",
"version": "v5.1.5",
diff --git a/config/sentry.php b/config/sentry.php
new file mode 100644
index 0000000..7fec6c7
--- /dev/null
+++ b/config/sentry.php
@@ -0,0 +1,34 @@
+ env('SENTRY_LARAVEL_DSN', env('SENTRY_DSN')),
+
+ // capture release as git sha
+ // 'release' => trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD')),
+
+ // When left empty or `null` the Laravel environment will be used
+ 'environment' => env('SENTRY_ENVIRONMENT'),
+
+ 'breadcrumbs' => [
+ // Capture Laravel logs in breadcrumbs
+ 'logs' => true,
+
+ // Capture SQL queries in breadcrumbs
+ 'sql_queries' => true,
+
+ // Capture bindings on SQL queries logged in breadcrumbs
+ 'sql_bindings' => true,
+
+ // Capture queue job information in breadcrumbs
+ 'queue_info' => true,
+
+ // Capture command information in breadcrumbs
+ 'command_info' => true,
+ ],
+
+ // @see: https://docs.sentry.io/error-reporting/configuration/?platform=php#send-default-pii
+ 'send_default_pii' => false,
+
+ 'traces_sample_rate' => (float)(env('SENTRY_TRACES_SAMPLE_RATE', 0.0)),
+];