jubeki/orbit-git

为 flat-file eloquent 驱动 orbit 提供git功能

0.1.0 2022-03-21 16:25 UTC

This package is auto-updated.

Last update: 2024-09-21 22:29:21 UTC


README

Packagist License Latest Stable Version

安装

使用composer安装此包。

composer require jubeki/orbit-git

服务提供者将使用包发现自动注册。

如果您不使用自动发现,则应将服务提供者添加到 config/app.php 中的 providers 数组。

// existing providers...
Jubeki\OrbitGit\OrbitGitServiceProvider::class,

自定义

自定义作者姓名和电子邮件地址

默认情况下,Orbit 将使用系统名称和电子邮件地址在您的仓库中进行提交。如果您想更改名称,请使用环境变量 ORBIT_GIT_NAMEORBIT_GIT_EMAIL

如果您想使用更动态的名称和电子邮件地址,可以使用 OrbitGit::resolveNameUsingOrbit::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提交(如果多个人同时更新同一模型,可能存在时间问题)

鸣谢

许可协议

MIT许可(MIT)。请参阅许可文件以获取更多信息。