$input * @return array */ public function createRules(array $input): array; /** * @param array $input * @return array */ public function createData(array $input): array; /** * @param array $input * @return array */ public function editRules(array $input): array; /** * @param array $input * @return array */ public function editData(array $input): array; /** * @return array */ public function data(): array; public function connect(): bool; public function getRepo(string $repo): mixed; public function fullRepoUrl(string $repo, string $key): string; /** * @param array $events * @return array * * @throws \App\Exceptions\FailedToDeployGitHook */ public function deployHook(string $repo, array $events, string $secret): array; /** * @throws FailedToDestroyGitHook */ public function destroyHook(string $repo, string $hookId): void; /** * @return array */ public function getLastCommit(string $repo, string $branch): ?array; /** * @throws FailedToDeployGitKey */ public function deployKey(string $title, string $repo, string $key): void; /** * @param array $payload */ public function getWebhookBranch(array $payload): string; }