use of io.hops.hopsworks.common.git.GitCommitDTO in project hopsworks by logicalclocks.
the class GitResource method getBranchCommits.
@ApiOperation(value = "Gets the branch commits. Similar to git log --oneline", response = GitCommitDTO.class)
@GET
@Path("/repository/{repositoryId}/branch/{branchName}/commit")
@Produces(MediaType.APPLICATION_JSON)
@AllowedProjectRoles({ AllowedProjectRoles.DATA_OWNER, AllowedProjectRoles.DATA_SCIENTIST })
@JWTRequired(acceptedTokens = { Audience.API }, allowedUserRoles = { "HOPS_ADMIN", "HOPS_USER" })
@ApiKeyRequired(acceptedScopes = { ApiScope.GIT }, allowedUserRoles = { "HOPS_ADMIN", "HOPS_USER" })
public Response getBranchCommits(@Context UriInfo uriInfo, @Context SecurityContext sc, @BeanParam Pagination pagination, @PathParam("repositoryId") Integer repositoryId, @PathParam("branchName") String branchName) throws GitOpException {
ResourceRequest resourceRequest = new ResourceRequest(ResourceRequest.Name.COMMIT);
resourceRequest.setOffset(pagination.getOffset());
resourceRequest.setLimit(pagination.getLimit());
GitRepository repository = commandConfigurationValidator.verifyRepository(project, repositoryId);
GitCommitDTO commits = gitCommitsBuilder.build(uriInfo, resourceRequest, project, repository, branchName);
return Response.ok().entity(commits).build();
}
use of io.hops.hopsworks.common.git.GitCommitDTO in project hopsworks by logicalclocks.
the class GitRepositoryBuilder method build.
public GitRepositoryDTO build(UriInfo uriInfo, ResourceRequest resourceRequest, Project project, GitRepository repository) {
GitRepositoryDTO repositoryDTO = new GitRepositoryDTO();
repositoryDTO.setHref(uri(uriInfo, project, repository.getId()));
repositoryDTO.setExpand(expand(resourceRequest));
if (repositoryDTO.isExpand()) {
repositoryDTO.setId(repository.getId());
repositoryDTO.setName(repository.getInode().getInodePK().getName());
repositoryDTO.setPath(inodeController.getPath(repository.getInode()));
repositoryDTO.setProvider(repository.getGitProvider());
repositoryDTO.setCurrentBranch(repository.getCurrentBranch());
repositoryDTO.setCreator(usersBuilder.build(uriInfo, resourceRequest.get(ResourceRequest.Name.CREATOR), repository.getCreator()));
Optional<GitCommit> commitOptional = gitCommitsFacade.findByHashAndRepository(repository);
if (commitOptional.isPresent()) {
GitCommit commit = commitOptional.get();
GitCommitDTO gitCommitDTO = new GitCommitDTO(commit.getName(), commit.getEmail(), commit.getMessage(), commit.getHash(), commit.getDate());
gitCommitDTO.setExpand(true);
repositoryDTO.setCurrentCommit(gitCommitDTO);
}
// check if repository has an ongoing operation
if (repository.getCid() != null) {
Optional<GitOpExecution> optional = gitOpExecutionFacade.findRunningInRepository(repository);
if (optional.isPresent()) {
repositoryDTO.setOngoingOperation(gitOpExecutionBuilder.build(uriInfo, null, optional.get()));
} else {
LOGGER.log(Level.SEVERE, "There is a repository in locked state but with no execution object");
}
}
}
return repositoryDTO;
}
use of io.hops.hopsworks.common.git.GitCommitDTO in project hopsworks by logicalclocks.
the class GitCommitsBuilder method build.
public GitCommitDTO build(UriInfo uriInfo, ResourceRequest resourceRequest, Project project, GitRepository repository, String branchName) throws GitOpException {
GitCommitDTO dto = new GitCommitDTO();
dto.setHref(uri(uriInfo, project, repository.getId(), branchName));
dto.setExpand(expand(resourceRequest));
if (dto.isExpand()) {
Integer limit = resourceRequest.getLimit() == null ? DEFAULT_BRANCH_COMMITS_LIMIT : resourceRequest.getLimit();
Integer offset = resourceRequest.getOffset() == null ? 0 : resourceRequest.getOffset();
AbstractFacade.CollectionInfo<GitCommit> branchCommits = gitCommitsFacade.getBranchCommits(repository, branchName, limit, offset);
List<GitCommitDTO> commitDTOs = branchCommits.getItems().stream().map(gitCommit -> new GitCommitDTO(gitCommit.getName(), gitCommit.getEmail(), gitCommit.getMessage(), gitCommit.getHash(), gitCommit.getDate())).collect(Collectors.toList());
dto.setItems(commitDTOs);
dto.setCount(branchCommits.getCount());
}
return dto;
}
Aggregations