private function guardFactoryClassImplementation($adapterFactory, $label)
{
$adapterFactoryClass = is_object($adapterFactory) ? get_class($adapterFactory) : $adapterFactory;
$classImplements = class_implements($adapterFactoryClass);
$repositoryManager = in_array(RepositoryManagerFactory::class, $classImplements, true);
$issueTracker = in_array(IssueTrackerFactory::class, $classImplements, true);
if (!$repositoryManager && !$issueTracker) {
throw new \InvalidArgumentException(sprintf('AdapterFactory class "%s" should implement "Gush\\Factory\\RepositoryManagerFactory" and/or ' . '"Gush\\Factory\\IssueTrackerFactory".', $adapterFactoryClass));
}
return ['factory' => $adapterFactory, 'label' => $label, self::SUPPORT_REPOSITORY_MANAGER => $repositoryManager, self::SUPPORT_ISSUE_TRACKER => $issueTracker];
}