Files
KanbanGit/app/Actions/Git/Contracts/GitProviderClient.php
T
2026-04-15 09:56:53 +02:00

54 lines
1.2 KiB
PHP

<?php
namespace App\Actions\Git\Contracts;
use App\Actions\Git\Data\GitAuthenticatedUser;
use App\Actions\Git\Data\GitBranch;
use App\Actions\Git\Data\GitPullRequest;
use App\Actions\Git\Data\GitRepository;
use App\Actions\Git\GitProviderKey;
interface GitProviderClient
{
public function key(): GitProviderKey;
public function getAuthenticatedUser(string $baseUrl, string $token): GitAuthenticatedUser;
public function getRepository(
string $baseUrl,
string $token,
string $owner,
string $repository,
): GitRepository;
/**
* @return array<int, GitRepository>
*/
public function listRepositories(string $baseUrl, string $token): array;
/**
* @return array<int, GitBranch>
*/
public function listBranches(
string $token,
GitRepository $repository,
): array;
/**
* @return array<int, GitPullRequest>
*/
public function listPullRequests(
string $token,
GitRepository $repository,
): array;
public function createBranch(
string $baseUrl,
string $token,
string $owner,
string $repository,
string $newBranchName,
?string $oldRefName = null,
): GitBranch;
}