Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ dependencies {
implementation 'com.epam.reportportal:service-api'
annotationProcessor 'com.epam.reportportal:service-api'
} else {
implementation 'com.github.reportportal:service-api:0141b9e'
annotationProcessor 'com.github.reportportal:service-api:0141b9e'
implementation 'com.github.reportportal:service-api:7969602'
annotationProcessor 'com.github.reportportal:service-api:7969602'
}

testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@
package com.epam.reportportal.extension.gitlab;

import com.epam.reportportal.base.core.events.domain.PluginUploadedEvent;
import com.epam.reportportal.base.infrastructure.persistence.binary.DataStoreService;
import com.epam.reportportal.base.infrastructure.persistence.dao.IntegrationRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.IntegrationTypeRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.LogRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.ProjectRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.ProjectUserRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.TestItemRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.organization.OrganizationRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.organization.OrganizationUserRepository;
import com.epam.reportportal.extension.CommonPluginCommand;
import com.epam.reportportal.extension.IntegrationGroupEnum;
import com.epam.reportportal.extension.NamedPluginCommand;
import com.epam.reportportal.extension.PluginCommand;
import com.epam.reportportal.extension.ReportPortalExtensionPoint;
import com.epam.reportportal.extension.command.ExtensionCommand;
import com.epam.reportportal.extension.common.IntegrationTypeProperties;
import com.epam.reportportal.base.core.events.domain.PluginUploadedEvent;
import com.epam.reportportal.extension.gitlab.client.GitlabClientProvider;
import com.epam.reportportal.extension.gitlab.command.DescriptionBuilderService;
import com.epam.reportportal.extension.gitlab.command.GetIssueCommand;
Expand All @@ -24,18 +33,9 @@
import com.epam.reportportal.extension.gitlab.command.TestConnectionCommand;
import com.epam.reportportal.extension.gitlab.event.plugin.PluginLoadedEventListener;
import com.epam.reportportal.extension.gitlab.info.impl.PluginInfoProviderImpl;
import com.epam.reportportal.extension.gitlab.utils.GitlabObjectMapperProvider;
import com.epam.reportportal.extension.gitlab.utils.MemoizingSupplier;
import com.epam.reportportal.extension.util.RequestEntityConverter;
import com.epam.reportportal.base.infrastructure.persistence.binary.DataStoreService;
import com.epam.reportportal.base.infrastructure.persistence.dao.IntegrationRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.IntegrationTypeRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.LogRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.ProjectRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.ProjectUserRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.TestItemRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.organization.OrganizationRepository;
import com.epam.reportportal.base.infrastructure.persistence.dao.organization.OrganizationUserRepository;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.HashMap;
Expand Down Expand Up @@ -64,7 +64,7 @@ public class GitlabExtension implements ReportPortalExtensionPoint, DisposableBe
private static final String DOCUMENTATION_LINK_FIELD = "documentationLink";
private static final String DOCUMENTATION_LINK = "https://reportportal.io/docs/plugins/GitLab/";
private final String resourcesDir;
private final RequestEntityConverter requestEntityConverter;
private final Supplier<RequestEntityConverter> requestEntityConverterSupplier;
private final Supplier<ApplicationListener<PluginUploadedEvent>> pluginLoadedListenerSupplier;
private final Supplier<GitlabClientProvider> gitlabClientProviderSupplier;
private final Supplier<DescriptionBuilderService> descriptionBuilderServiceSupplier;
Expand Down Expand Up @@ -95,6 +95,8 @@ public class GitlabExtension implements ReportPortalExtensionPoint, DisposableBe
@Autowired
private BasicTextEncryptor textEncryptor;
@Autowired
private ObjectMapper objectMapper;
@Autowired
@Qualifier("attachmentDataStoreService")
private DataStoreService dataStoreService;

Expand All @@ -108,9 +110,8 @@ public GitlabExtension(Map<String, Object> initParams) {
));

gitlabClientProviderSupplier = new MemoizingSupplier<>(
() -> new GitlabClientProvider(textEncryptor));
requestEntityConverter = new RequestEntityConverter(
new GitlabObjectMapperProvider().getObjectMapper());
() -> new GitlabClientProvider(textEncryptor, objectMapper));
requestEntityConverterSupplier = new MemoizingSupplier<>(() -> new RequestEntityConverter(objectMapper));
descriptionBuilderServiceSupplier = new MemoizingSupplier<>(
() -> new DescriptionBuilderService(logRepository, testItemRepository, dataStoreService));
}
Expand Down Expand Up @@ -198,7 +199,7 @@ public Map<String, ExtensionCommand<?>> getIntegrationExtensionCommands() {
commands.add(new GetIssueFieldsCommand(projectRepository, organizationUserRepository,
organizationRepository, projectUserRepository));
commands.add(new PostTicketCommand(projectRepository, gitlabClientProviderSupplier.get(),
requestEntityConverter, descriptionBuilderServiceSupplier.get(), organizationUserRepository,
requestEntityConverterSupplier.get(), descriptionBuilderServiceSupplier.get(), organizationUserRepository,
organizationRepository, projectUserRepository));
return commands.stream().collect(Collectors.toMap(NamedPluginCommand::getName, it -> it));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import com.epam.reportportal.extension.gitlab.dto.ProjectDto;
import com.epam.reportportal.extension.gitlab.dto.UploadsLinkDto;
import com.epam.reportportal.extension.gitlab.dto.UserDto;
import com.epam.reportportal.extension.gitlab.utils.GitlabObjectMapperProvider;
import com.epam.reportportal.base.infrastructure.persistence.entity.attachment.Attachment;
import com.epam.reportportal.base.infrastructure.rules.exception.ErrorType;
import com.epam.reportportal.base.infrastructure.rules.exception.ReportPortalException;
Expand All @@ -24,6 +23,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import lombok.RequiredArgsConstructor;
import org.jooq.tools.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.ParameterizedTypeReference;
Expand All @@ -42,6 +42,7 @@
* @author Zsolt Nagyaghy
*/
@Slf4j
@RequiredArgsConstructor
public class GitlabClient {

private static final Integer DEFAULT_PAGE_SIZE = 100;
Expand All @@ -64,12 +65,7 @@ public class GitlabClient {

private final String baseUrl;
private final String token;
ObjectMapper objectMapper = new GitlabObjectMapperProvider().getObjectMapper();

public GitlabClient(String baseUrl, String token) {
this.baseUrl = baseUrl;
this.token = token;
}
private final ObjectMapper objectMapper;

public ProjectDto getProject(String projectId) {
String pathUrl = String.format(BASE_PATH, baseUrl, projectId);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package com.epam.reportportal.extension.gitlab.client;

import com.epam.reportportal.extension.gitlab.command.GitlabProperties;
import com.epam.reportportal.base.infrastructure.persistence.entity.integration.IntegrationParams;
import com.epam.reportportal.base.infrastructure.rules.exception.ErrorType;
import com.epam.reportportal.base.infrastructure.rules.exception.ReportPortalException;
import com.epam.reportportal.extension.gitlab.command.GitlabProperties;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import org.jasypt.util.text.BasicTextEncryptor;

/**
* @author Zsolt Nagyaghy
*/
@RequiredArgsConstructor
public class GitlabClientProvider {

protected BasicTextEncryptor textEncryptor;

public GitlabClientProvider(BasicTextEncryptor textEncryptor) {
this.textEncryptor = textEncryptor;
}
private final BasicTextEncryptor textEncryptor;
private final ObjectMapper objectMapper;

public GitlabClient get(IntegrationParams integrationParams) {
String credentials = textEncryptor.decrypt(
Expand All @@ -27,6 +27,6 @@ public GitlabClient get(IntegrationParams integrationParams) {
() -> new ReportPortalException(ErrorType.UNABLE_INTERACT_WITH_INTEGRATION,
"Url to the GitLab is not specified."
));
return new GitlabClient(url, credentials);
return new GitlabClient(url, credentials, objectMapper);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@
*/
package com.epam.reportportal.extension.gitlab.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
* @author <a href="mailto:pavel_bortnik@epam.com">Pavel Bortnik</a>
*/
@Setter
@Getter
@NoArgsConstructor
public class IssueDto {

private Long iid;
private String title;
private String state;
@JsonProperty("web_url")
private String webUrl;

public IssueDto() {
}

}

This file was deleted.

Loading