Недавно я обнаружил уязвимость в пакете, который мне нравится использовать в моих проектах Laravel. Пакет представляет собой средство просмотра журнала для Laravel: https://github.com/ARCANEDEV/LogViewer.
Я поставил вопрос об уязвимости, и владелец сказал, что могу добавить запрос на извлечение, чтобы попытаться исправить проблему, и я чувствую, что могухотя бы попытайтесь.
Мой вопрос: есть ли способ использовать версию пакета с моим запросом на извлечение в среде тестирования, как если бы я устанавливал ее через Composer?
По существу,Вдали от реальных модульных тестов, есть ли способ запустить пакет в проекте?
Обновляет данные исследований и доступные ответы
После долгих поисков и чтения ответовЯ попытался сделать следующее:
- Развернуть репо, для которого я хочу сделать запрос на извлечение. Разветвление здесь: https://github.com/blorange2/LogViewer
- Клонируйте этот разветвленный репо на мою локальную машину и переключитесь на ветку, которая совместима с моей текущей версией Laravel (версия v4.5 для Laravel 5.6)
- Обновите
composer.json
в моем локальном проекте, чтобы иметь массив repositories
"repositories": [
{
"type": "path",
"url": "../forks/LogViewer"
}
],
. В целом все выглядит так:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"type": "project",
"repositories": [
{
"type": "path",
"url": "../forks/LogViewer"
}
],
"require": {
"php": "^7.1.3",
"alexusmai/laravel-purifier": "^0.5.0",
"arcanedev/log-viewer": "^4.5",
"artesaos/laravel-linkedin": "^1.3",
"barryvdh/laravel-dompdf": "^0.8.4",
"cartalyst/tags": "6.0.*",
"cornford/googlmapper": "^2.33",
"doctrine/dbal": "^2.9",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.3",
"guzzlehttp/psr7": "^1.4",
"happyr/linkedin-api-client": "^1.0",
"intervention/image": "^2.5",
"ixudra/curl": "^6.16",
"jdavidbakr/mail-tracker": "~2.1",
"laravel/framework": "5.6.*",
"laravel/scout": "^5.0",
"laravel/socialite": "^3.0",
"laravel/tinker": "^1.0",
"laravelcollective/html": "^5.6",
"laravolt/avatar": "^3.0",
"league/flysystem-sftp": "~1.0",
"maatwebsite/excel": "^3.1",
"maddhatter/laravel-fullcalendar": "^1.3",
"mews/purifier": "^2.1",
"php-http/curl-client": "^1.7",
"php-http/message": "^1.6",
"pusher/pusher-http-laravel": "^4.2",
"socialiteproviders/microsoft-graph": "^2.0",
"spatie/calendar-links": "^1.0",
"spatie/flysystem-dropbox": "^1.2",
"spatie/laravel-analytics": "^3.6",
"spatie/laravel-backup": "^5.9",
"spatie/laravel-medialibrary": "7.6.3",
"spatie/laravel-permission": "^2.12",
"teamtnt/laravel-scout-tntsearch-driver": "^3.0",
"thujohn/twitter": "^2.2",
"unisharp/laravel-filemanager": "~1.8",
"vimeo/laravel": "^5.0"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.2",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^2.0",
"phpunit/phpunit": "^7.0"
},
"autoload": {
"files": [
"app/Helpers/Helper.php"
],
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": []
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
Мой основной проектнаходится по следующему пути (от запуска pwd в Windows) C:\xampp\htdocs\projects\newable\newable-intranet
Клонированный, разветвленный проект находится здесь: C:\xampp\htdocs\projects\forks\LogViewer
.
Однако при запуске composer update
не используетсялокальная версия, она просто использует: "arcanedev/log-viewer": "^4.5",