app->register(TelescopeServiceProvider::class); } } public function boot(): void { $this->configureCommands(); $this->configureModels(); $this->configurePasswords(); $this->configureSanctumModel(); $this->configureGitHubHttp(); } private function configureCommands(): void { if (App::isProduction()) { DB::prohibitDestructiveCommands(); } } private function configureModels(): void { // Disabled because it's causing issues with the application // Model::shouldBeStrict(); } private function configurePasswords(): void { Password::defaults(function () { return App::isProduction() ? Password::min(8) ->mixedCase() ->letters() ->numbers() ->symbols() ->uncompromised() : Password::min(8)->letters(); }); } private function configureSanctumModel(): void { Sanctum::usePersonalAccessTokenModel(PersonalAccessToken::class); } private function configureGitHubHttp(): void { Http::macro('GitHub', function (string $api_url, ?string $github_access_token = null) { if ($github_access_token) { return Http::withHeaders([ 'X-GitHub-Api-Version' => '2022-11-28', 'Accept' => 'application/vnd.github.v3+json', 'Authorization' => "Bearer $github_access_token", ])->baseUrl($api_url); } else { return Http::withHeaders([ 'Accept' => 'application/vnd.github.v3+json', ])->baseUrl($api_url); } }); } }