/**
  * @param string $config
  * @return string
  */
 public function getPrivateMirror($config)
 {
     /** @var \App\Satis\Model\Config $privateConfig */
     $privateConfig = $this->serializer->deserialize($config, 'App\\Satis\\Model\\Config', 'json');
     $homepage = $privateConfig->getHomepage();
     $privateConfig->setHomepage(rtrim($homepage, '/') . '/' . config('satis.private_repository'))->setRequireAll(true)->setPackages(new PackageCollection());
     return $this->serializer->serialize($privateConfig, 'json');
 }
 /**
  * @param string|null $repositoryId
  */
 public function unlock($repositoryId = null)
 {
     $lockedRepositories = $this->getLockedRepositories();
     if ($repositoryId !== null && $lockedRepositories->contains($repositoryId)) {
         $lockedRepositories = $lockedRepositories->filter(function ($id) use($repositoryId) {
             return $id !== $repositoryId;
         });
     }
     $this->configLock->isLocked(false)->by($lockedRepositories);
     $this->filesystem->put($this->lockFilename, $this->serializer->serialize($this->configLock, 'json'));
 }