26 lines
653 B
PHP
26 lines
653 B
PHP
<?php
|
|
|
|
namespace App\Actions\Git;
|
|
|
|
use App\Actions\Git\Contracts\GitProviderClient;
|
|
use App\Actions\Git\Gitea\GiteaProviderClient;
|
|
use Illuminate\Support\Str;
|
|
|
|
class GitProviderManager
|
|
{
|
|
public function __construct(
|
|
private readonly GiteaProviderClient $giteaProviderClient,
|
|
) {}
|
|
|
|
public function client(GitProviderKey|string $provider): GitProviderClient
|
|
{
|
|
$providerKey = $provider instanceof GitProviderKey
|
|
? $provider
|
|
: GitProviderKey::from(Str::lower(trim($provider)));
|
|
|
|
return match ($providerKey) {
|
|
GitProviderKey::Gitea => $this->giteaProviderClient,
|
|
};
|
|
}
|
|
}
|