jubeki / orbit-git
为 flat-file eloquent 驱动 orbit 提供git功能
0.1.0
2022-03-21 16:25 UTC
Requires
- php: ^8.0
- ryangjchandler/git: ^0.0.4
- ryangjchandler/orbit: ^1.1.2
Requires (Dev)
- jubeki/laravel-code-style: ^1.0.0
- nunomaduro/larastan: ^2.1
- orchestra/testbench: ^7.1
- phpunit/phpunit: ^9.5
README
安装
使用composer安装此包。
composer require jubeki/orbit-git
服务提供者将使用包发现自动注册。
如果您不使用自动发现,则应将服务提供者添加到 config/app.php
中的 providers 数组。
// existing providers... Jubeki\OrbitGit\OrbitGitServiceProvider::class,
自定义
自定义作者姓名和电子邮件地址
默认情况下,Orbit 将使用系统名称和电子邮件地址在您的仓库中进行提交。如果您想更改名称,请使用环境变量 ORBIT_GIT_NAME
和 ORBIT_GIT_EMAIL
。
如果您想使用更动态的名称和电子邮件地址,可以使用 OrbitGit::resolveNameUsing
和 Orbit::resolveEmailUsing
方法。
use Jubeki\OrbitGit\Facades\OrbitGit; public function boot() { OrbitGit::resolveNameUsing(function () { return Auth::user()->name; }); OrbitGit::resolveEmailUsing(function () { return Auth::user()->email; }); }
自定义提交信息
默认为 [AUTO] {event} {model} {primary_key}
。您也可以使用 OrbitGit::resolveMessageUsing
方法更改提交信息。
use Jubeki\OrbitGit\Facades\OrbitGit; public function boot() { OrbitGit::resolveMessageUsing(function ($event) { return (string) Str::of(config('orbit-git.message_template')) ->replace('{event}', $this->getTypeOfEvent($event)) ->replace('{model}', class_basename($event->model)) ->replace('{primary_key}', $event->model->getKey()); }); }
您还可以覆盖特定事件的默认 OrbitGit::resolveMessageUsing
方法中的消息。
use Jubeki\OrbitGit\Facades\OrbitGit; public function boot() { OrbitGit::resolveCreatedMessageUsing(function ($event) { return '...', }); OrbitGit::resolveDeletedMessageUsing(function ($event) { return '...', }); OrbitGit::resolveForceDeletedMessageUsing(function ($event) { return '...', }); OrbitGit::resolveUpdatedMessageUsing(function ($event) { return '...', }); }
使用Laravel Forge部署
您可以将以下内容添加到部署脚本的顶部,以跳过在生产系统上使用Orbit提交的部署。
if [[ $FORGE_DEPLOY_MESSAGE =~ ^\[AUTO\](.*)$ ]]; then echo "AUTOMATED COMMIT FROM THE SERVER DO NOT DEPLOY!!!" exit 0 fi
变更日志
请参阅变更日志以了解最近的变化。
贡献
请参阅贡献指南以获取详细信息。
待办事项
- 根据事件只提交更改的文件,而不是完整路径
- 仅在有需求时推送
- 允许队列Git提交(如果多个人同时更新同一模型,可能存在时间问题)
鸣谢
- Julius Kiekbusch
- Ryan Chandler(实现了Orbit和原始的Git集成)
- 所有贡献者
许可协议
MIT许可(MIT)。请参阅许可文件以获取更多信息。