tjvb/laravel-githash

获取您项目的当前git哈希,显示在您的blade中或添加到您的日志中。

1.6.0 2024-04-02 21:23 UTC

This package is auto-updated.

Last update: 2024-09-02 20:06:11 UTC


README

Latest Stable Version Pipeline status Coverage report Tested on PHP 8.0 to 8.3 Tested on Laravel 8 to 11 Latest Unstable Version

PHP Version Require Laravel Version Require PHPMD PHPStan ECS

License

目的

本项目的目标是提供一个简化获取代码中git哈希的方法。此哈希可以显示在管理界面中,添加到您的日志中,并用于您能想到的任何地方。

安装

基本安装是通过composer添加此项目:composer require tjvb/laravel-githash

手动注册服务提供者。

如果您禁用了包发现,您需要将TJVB\LaravelGitHash\GitHashServiceProvider::class,添加到config/app.php中的提供者数组。

日志

该包提供了一种将githash添加到日志的方法,默认情况下启用。

Blade组件

此包添加了一个默认的blade组件,您可以使用<x-githash></x-githash>在您的(管理)页面上显示短哈希和githash。此选项允许添加短版本或长版本声明,只显示其中之一。<x-githash version="short"></x-githash>

关于命令

如果Laravel关于命令可用,它将添加有关哈希和缓存状态的信息。这可以在配置中禁用。

其他用途

有很多选项可以将哈希添加到应用程序的其他部分。这可以通过注入\TJVB\LaravelGitHash\Contracts\GitHashLoader来完成,它提供了返回TJVB\GitHash\Values\GitHash值对象的getGitHash函数,该对象提供了hash()short()函数。

use TJVB\LaravelGitHash\Contracts\GitHashLoader;

public function example(GitHashLoader $gitHashLoader)
{
    echo $gitHashLoader->getGitHash()->hash();
} 

自定义和配置

使用php artisan vendor:publish发布配置文件后,您可以更改不同类别的绑定。
将缓存文件指向一个在您的部署之间不共享的位置非常重要。

env文件变量

在默认配置中,有一些不同的ENV变量可以使用。

名称默认值描述
GITHASH_REPO_PATHbase_path()git仓库的路径,根据查找器,这需要是仓库的根目录,或者它可以是在仓库中的任何路径。
GITHASH_CACHE_ENABLEDnull如果需要启用缓存,如果为null,则在没有禁用调试的情况下启用。
GITHASH_ABOUT_ENABLEDtrue如果需要在Laravel About命令中添加有关哈希和缓存状态的信息。
GITHASH_LOG_CONTEXT_ENABLEDtrue如果需要在日志上下文中添加哈希。

查找器

此包使用tjvb/githash提供哈希。这提供了不同的查找器。您可以使用特定的查找器进行填充。如果您留空,它将添加默认查找器。(在默认工厂中,这意味着该项目的所有查找器。)

不同的blade组件视图

发布blade文件后,使用php artisan vendor:publish,您可以更改blade。发布后的位置将是resources/views/vendor/githash/githash.blade.php,在这里您可以按需编辑blade。

自定义实现

可以覆盖不同的类,这可以通过实现接口并更新配置文件来完成。配置文件包含实现,并带有注释,指向要实现的正确接口。

缓存

此包使用文件来缓存哈希。使用文件缓存是因为这应该比每次需要时获取缓存更快。(也取决于查找器和存储库大小)。它不使用构建Laravel缓存以防止使用共享缓存。通过这个文件缓存,可以看到例如一个队列运行者使用与其他运行者不同的代码版本。这有助于调试任何问题。

无git在服务器上的使用

根据您部署应用程序的方式,您可能无法获取存储库信息。为此,将哈希写入缓存文件也将很有用。

Envoyer 示例

如果您使用Envoyer,您服务器上没有git存储库。并且完整存储目录将在您的部署之间共享。这需要一些定制。
首先更新您的配置,以便缓存文件位于共享目录之外。

// in config/githash.php
    'cache_file' => base_path('githash.cache'),

然后添加一个新的部署钩子,在您安装composer依赖项之前执行,以将哈希放置在缓存文件中

cd {{release}}

echo {{sha}} > githash.cache

通过这些更改,您将拥有缓存文件,而无需在服务器上拥有存储库,并且可以在所需位置使用哈希。

更新日志

我们(尝试)在更新日志中记录所有更改,所以请阅读以获取更多信息。

贡献

欢迎您贡献力量,有关信息请参阅贡献指南

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件