gaiththewolf / git-manager
此包可以在项目上执行和解析git命令,它可以提供一个方法,通过客户端界面点击按钮来更新laravel应用程序,而无需知道git命令
v0.0.4
2023-06-14 12:55 UTC
Requires
- php: ~8.0
- illuminate/support: ^8.0|^9.0|^10.0
- symfony/process: ^6.3
Requires (Dev)
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^8.0|^9.0
README
此包可以在项目上执行和解析git命令,它可以提供一个方法,通过客户端界面点击按钮来更新laravel应用程序,而无需知道git命令
需求
- Laravel 9.x 至 10.x
- PHP >= 8.0
安装
您可以通过composer安装此包
composer require gaiththewolf/git-manager
功能
- git版本
- 仓库最后更新
- 检查仓库更新(新提交)
- 拉取更改
- 运行命令,如(composer,php artisan,...)
用法
namespace App\Http\Controllers; use GitManager; class UpdaterController extends Controller { public function __construct() { // init and set git working directory GitManager::init(base_path()); } public function index() { $version = GitManager::version(); // get string of installed git version $version = trim(str_replace("git version", "",$version)); $lastUpdate = trim(GitManager::lastUpdate()); // get string of last update datetime $status = GitManager::status(); // get Object git status include command `git fetch` before //$status = GitManager::status("ssh password"); $logs = GitManager::log(); // get Object Last 10 logs return view('update.index', compact('version', 'lastUpdate', 'status', 'logs')); } public function pull() { $output = GitManager::pull(); // get Object of pull changes if exist //$output = GitManager::pull("ssh password"); if ($output["is_up_to_date"]) { return redirect()->route('update.index'); } return redirect()->route('update.index')->with("pullData", $output); } }
数据结构
GitManager::status()
的数据结构。
Gaiththewolf\GitManager\Data\GitStatus {#1512 ▼ // app\Http\Controllers\UpdaterController.php:37 +branch: "main" +isUpToDate: true +isPush: false +isPull: false }
GitManager::log()
的数据结构。
Illuminate\Support\Collection {#1512 ▼ // app\Http\Controllers\UpdaterController.php:37 #items: array:4 [▶ 0 => Gaiththewolf\GitManager\Data\GitLog {#763 ▶ +hash: "1c1efa505bb1c15f6bc40747f3d73" +merge: array:2 [▶ 0 => "d0f83" 1 => "5f047" ] +author: array:2 [▶ "full_name" => "User 1" "email" => "user1@mail.local" ] +date: "Tue Jun 13 14:30:35 2023 +0100" +message: "Merge branch 'main' of github.com:gaiththewolf/projectXXX" } 1 => Gaiththewolf\GitManager\Data\GitLog {#778 ▶ +hash: "d0f6283eebb28d4fbc9231d3e4d6e2720cd9" +merge: [] +author: array:2 [▶ "full_name" => "User 1" "email" => "user1@mail.local" ] +date: "Tue Jun 13 14:30:27 2023 +0100" +message: "fix" } 2 => Gaiththewolf\GitManager\Data\GitLog {#1579 ▶ +hash: "5f23047507e41a429ca2a7adadcfd127" +merge: [] +author: array:2 [▶ "full_name" => "User 2" "email" => "user2@mail.local" ] +date: "Tue Jun 13 14:29:50 2023 +0100" +message: "Update README.md" } 3 => Gaiththewolf\GitManager\Data\GitLog {#780 ▶ +hash: "5160f64d7ad207322cde61bd965c2ad3a" +merge: [] +author: array:2 [▶ "full_name" => "User 1" "email" => "user1@mail.local" ] +date: "Tue Jun 13 14:07:35 2023 +0100" +message: "Update README.md" } ] #escapeWhenCastingToString: false }
GitManager::pull()
的数据结构。
Gaiththewolf\GitManager\Data\GitPull {#1512 ▼ // app\Http\Controllers\UpdaterController.php:37 +files: array:1 [▶ 0 => " README.md" ] +isUpToDate: false +changed: "1" +insertion: "2" +deletion: "0" }
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全相关的问题,请发送电子邮件至 gaiththewolf@gmail.com 而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。