@Override public Repository createRepository(final OrganizationalUnit organizationalUnit, final String scheme, final String alias, final RepositoryEnvironmentConfigurations repositoryEnvironmentConfigurations) throws RepositoryAlreadyExistsException { try { final Repository repository = createRepository(scheme, alias, repositoryEnvironmentConfigurations); if (organizationalUnit != null && repository != null) { organizationalUnitService.addRepository(organizationalUnit, repository); } metadataStore.write(alias, (String) repositoryEnvironmentConfigurations.getOrigin()); return repository; } catch (final Exception e) { logger.error("Error during create repository", e); throw ExceptionUtilities.handleException(e); } }
private GitMetadata getRepositoryMetadata(final String repository) { final Optional<GitMetadata> optional = this.metadataStore.read(repository); if (!optional.isPresent()) { throw new RepositoryNotFoundException( String.format("The repository does not exists <<%s>>", repository)); } return optional.get(); }
private void doRemoveRepository(final OrganizationalUnit orgUnit, final String alias, final ConfigGroup thisRepositoryConfig, final Consumer<Repository> notification) throws Exception { if (thisRepositoryConfig != null) { configurationService.removeConfiguration(thisRepositoryConfig); } final Repository repo = configuredRepositories.remove(orgUnit.getSpace(), alias); if (repo != null) { notification.accept(repo); Branch defaultBranch = repo.getDefaultBranch().orElseThrow(() -> new IllegalStateException("Repository should have at least one branch.")); ioService.delete(convert(defaultBranch.getPath()).getFileSystem().getPath(null)); } //Remove reference to Repository from Organizational Units for (Repository repository : orgUnit.getRepositories()) { if (repository.getAlias().equals(alias)) { organizationalUnitService.removeRepository(orgUnit, repository); metadataStore.delete(alias); } } }
organizationalUnitService.removeRepository(ou, repository); metadataStore.delete(alias);
private GitMetadata getRepositoryMetadata(final String repository) { final Optional<GitMetadata> optional = this.metadataStore.read(repository); if (!optional.isPresent()) { throw new RepositoryNotFoundException( String.format("The repository does not exists <<%s>>", repository)); } return optional.get(); }
@Override public Repository createRepository(final OrganizationalUnit organizationalUnit, final String scheme, final String alias, final RepositoryEnvironmentConfigurations repositoryEnvironmentConfigurations, final Collection<Contributor> contributors) throws RepositoryAlreadyExistsException { try { repositoryEnvironmentConfigurations.setSpace(organizationalUnit.getName()); Space space = spacesAPI.getSpace(organizationalUnit.getName()); String newAlias = createFreshRepositoryAlias(alias, space); final Repository repository = createRepository(scheme, newAlias, new Space(organizationalUnit.getName()), repositoryEnvironmentConfigurations, contributors); if (organizationalUnit != null && repository != null) { organizationalUnitService.addRepository(organizationalUnit, repository); } metadataStore.write(newAlias, (String) repositoryEnvironmentConfigurations.getOrigin()); return repository; } catch (final Exception e) { logger.error("Error during create repository", e); throw ExceptionUtilities.handleException(e); } }
@Override public void deletePullRequest(final PullRequest pullRequest) { checkNotNull("pullRequest", pullRequest); checkNotNull("id", pullRequest.getId()); checkNotEmpty("targetRepository", pullRequest.getTargetRepository()); String repository = pullRequest.getTargetRepository(); long id = pullRequest.getId(); GitMetadata metadata = getRepositoryMetadata(repository); PullRequest removablePullRequest = metadata.getPullRequest(id); List<PullRequest> finalPullRequests = metadata.getPullRequests(); finalPullRequests.remove(removablePullRequest); GitMetadata storableMetadata = new GitMetadataImpl(metadata.getName(), metadata.getOrigin(), metadata.getForks(), finalPullRequests); this.metadataStore.write(storableMetadata.getName(), storableMetadata); this.deleteHiddenBranch(removablePullRequest); }
@Override public void deletePullRequest(final PullRequest pullRequest) { checkNotNull("pullRequest", pullRequest); checkNotNull("id", pullRequest.getId()); checkNotEmpty("targetRepository", pullRequest.getTargetRepository()); String repository = pullRequest.getTargetRepository(); long id = pullRequest.getId(); GitMetadata metadata = getRepositoryMetadata(repository); PullRequest removablePullRequest = metadata.getPullRequest(id); List<PullRequest> finalPullRequests = metadata.getPullRequests(); finalPullRequests.remove(removablePullRequest); GitMetadata storableMetadata = new GitMetadataImpl(metadata.getName(), metadata.getOrigin(), metadata.getForks(), finalPullRequests); this.metadataStore.write(storableMetadata.getName(), storableMetadata); this.deleteHiddenBranch(removablePullRequest); }
protected void changePullRequestStatus(final String repository, final long id, final PullRequestStatus status) { checkNotEmpty("repository", repository); checkNotNull("status", status); GitMetadata metadata = getRepositoryMetadata(repository); PullRequest pullRequest = metadata.getPullRequest(id); PullRequestImpl finalPullRequest = new PullRequestImpl(pullRequest.getId(), pullRequest.getSourceRepository(), pullRequest.getSourceBranch(), pullRequest.getTargetRepository(), pullRequest.getTargetBranch(), status); List<PullRequest> finalPullRequests = metadata.getPullRequests(elem -> elem.getId() != id); finalPullRequests.add(finalPullRequest); GitMetadata storableMetadata = new GitMetadataImpl(metadata.getName(), metadata.getOrigin(), metadata.getForks(), finalPullRequests); this.metadataStore.write(storableMetadata.getName(), storableMetadata); }
protected void changePullRequestStatus(final String repository, final long id, final PullRequestStatus status) { checkNotEmpty("repository", repository); checkNotNull("status", status); GitMetadata metadata = getRepositoryMetadata(repository); PullRequest pullRequest = metadata.getPullRequest(id); PullRequestImpl finalPullRequest = new PullRequestImpl(pullRequest.getId(), pullRequest.getSourceSpace(), pullRequest.getSourceRepository(), pullRequest.getSourceBranch(), pullRequest.getTargetSpace(), pullRequest.getTargetRepository(), pullRequest.getTargetBranch(), status); List<PullRequest> finalPullRequests = metadata.getPullRequests(elem -> elem.getId() != id); finalPullRequests.add(finalPullRequest); GitMetadata storableMetadata = new GitMetadataImpl(metadata.getName(), metadata.getOrigin(), metadata.getForks(), finalPullRequests); this.metadataStore.write(storableMetadata.getName(), storableMetadata); }