fix: Gitea Traefik routing and connection pool optimization
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
- Remove middleware reference from Gitea Traefik labels (caused routing issues) - Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s) - Add explicit service reference in Traefik labels - Fix intermittent 504 timeouts by improving PostgreSQL connection handling Fixes Gitea unreachability via git.michaelschiemer.de
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\Display\ValueObjectFormatters;
|
||||
|
||||
use App\Framework\Console\ConsoleColor;
|
||||
use App\Framework\Console\ConsoleStyle;
|
||||
use App\Framework\Core\ValueObjects\Byte;
|
||||
use App\Framework\Display\ValueObjects\DisplayOptions;
|
||||
|
||||
/**
|
||||
* Formatter for Byte Value Objects with human-readable formatting
|
||||
*/
|
||||
final readonly class ByteFormatter implements ValueObjectFormatterInterface
|
||||
{
|
||||
public function supports(object $valueObject): bool
|
||||
{
|
||||
return $valueObject instanceof Byte;
|
||||
}
|
||||
|
||||
public function formatConsole(object $valueObject, DisplayOptions $options): string
|
||||
{
|
||||
if (! $valueObject instanceof Byte) {
|
||||
return (string) $valueObject;
|
||||
}
|
||||
|
||||
$humanReadable = $valueObject->toHumanReadable(2);
|
||||
$bytes = $valueObject->toBytes();
|
||||
|
||||
// Color-code by size range
|
||||
$color = match (true) {
|
||||
$bytes < 1024 => ConsoleColor::WHITE, // Bytes
|
||||
$bytes < 1024 * 1024 => ConsoleColor::GREEN, // KB
|
||||
$bytes < 1024 * 1024 * 1024 => ConsoleColor::YELLOW, // MB
|
||||
$bytes < 1024 * 1024 * 1024 * 1024 => ConsoleColor::BRIGHT_YELLOW, // GB
|
||||
default => ConsoleColor::BRIGHT_RED, // TB+
|
||||
};
|
||||
|
||||
return ConsoleStyle::create(color: $color)->apply($humanReadable);
|
||||
}
|
||||
|
||||
public function formatHtml(object $valueObject, DisplayOptions $options): string
|
||||
{
|
||||
if (! $valueObject instanceof Byte) {
|
||||
return htmlspecialchars((string) $valueObject);
|
||||
}
|
||||
|
||||
$humanReadable = $valueObject->toHumanReadable(2);
|
||||
$bytes = $valueObject->toBytes();
|
||||
|
||||
// CSS class based on size range
|
||||
$cssClass = match (true) {
|
||||
$bytes < 1024 => 'display-byte-size',
|
||||
$bytes < 1024 * 1024 => 'display-kb-size',
|
||||
$bytes < 1024 * 1024 * 1024 => 'display-mb-size',
|
||||
$bytes < 1024 * 1024 * 1024 * 1024 => 'display-gb-size',
|
||||
default => 'display-tb-size',
|
||||
};
|
||||
|
||||
return '<span class="' . $cssClass . '">' . htmlspecialchars($humanReadable) . '</span>';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user