diff --git a/bot-app/src/main/resources/liquibase/v.1.0.0/2021-02-05-edit-pipelines.xml b/bot-app/src/main/resources/liquibase/v.1.0.0/2021-02-05-edit-pipelines.xml
new file mode 100644
index 0000000..6fdb000
--- /dev/null
+++ b/bot-app/src/main/resources/liquibase/v.1.0.0/2021-02-05-edit-pipelines.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bot-app/src/main/resources/liquibase/v.1.0.0/cumulative.xml b/bot-app/src/main/resources/liquibase/v.1.0.0/cumulative.xml
index f4fa8c2..ded14d1 100644
--- a/bot-app/src/main/resources/liquibase/v.1.0.0/cumulative.xml
+++ b/bot-app/src/main/resources/liquibase/v.1.0.0/cumulative.xml
@@ -5,5 +5,6 @@
+
\ No newline at end of file
diff --git a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/entity/Pipeline.java b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/entity/Pipeline.java
index 87ff936..4988580 100644
--- a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/entity/Pipeline.java
+++ b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/entity/Pipeline.java
@@ -54,4 +54,8 @@ public class Pipeline implements BasicEntity {
@JoinColumn(name = "project_id")
private Project project;
+ @ManyToOne
+ @JoinColumn(name = "person_id")
+ private Person person;
+
}
diff --git a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/convert/PipelineJsonConverter.java b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/convert/PipelineJsonConverter.java
index 2de33e2..a4a6553 100644
--- a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/convert/PipelineJsonConverter.java
+++ b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/convert/PipelineJsonConverter.java
@@ -1,5 +1,6 @@
package org.sadtech.bot.gitlab.core.service.convert;
+import lombok.RequiredArgsConstructor;
import org.sadtech.bot.gitlab.context.domain.PipelineStatus;
import org.sadtech.bot.gitlab.context.domain.entity.Pipeline;
import org.sadtech.bot.gitlab.sdk.domain.PipelineJson;
@@ -25,8 +26,11 @@ import static org.sadtech.bot.gitlab.context.domain.PipelineStatus.WAITING_FOR_R
* @author upagge 17.01.2021
*/
@Component
+@RequiredArgsConstructor
public class PipelineJsonConverter implements Converter {
+ private final PersonJsonConverter convertPerson;
+
@Override
public Pipeline convert(PipelineJson source) {
final Pipeline pipeline = new Pipeline();
@@ -36,6 +40,7 @@ public class PipelineJsonConverter implements Converter
pipeline.setRef(source.getRef());
pipeline.setWebUrl(source.getWebUrl());
pipeline.setStatus(convertStatus(source.getStatus()));
+ pipeline.setPerson(convertPerson.convert(source.getUser()));
return pipeline;
}
diff --git a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/PipelineServiceImpl.java b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/PipelineServiceImpl.java
index 4b2d5aa..e6d6b41 100644
--- a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/PipelineServiceImpl.java
+++ b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/PipelineServiceImpl.java
@@ -1,11 +1,13 @@
package org.sadtech.bot.gitlab.core.service.impl;
import lombok.NonNull;
+import org.sadtech.bot.gitlab.context.domain.PersonInformation;
import org.sadtech.bot.gitlab.context.domain.PipelineStatus;
import org.sadtech.bot.gitlab.context.domain.entity.Pipeline;
import org.sadtech.bot.gitlab.context.domain.notify.pipeline.PipelineNotify;
import org.sadtech.bot.gitlab.context.repository.PipelineRepository;
import org.sadtech.bot.gitlab.context.service.NotifyService;
+import org.sadtech.bot.gitlab.context.service.PersonService;
import org.sadtech.bot.gitlab.context.service.PipelineService;
import org.sadtech.haiti.context.exception.NotFoundException;
import org.sadtech.haiti.context.page.Pagination;
@@ -36,18 +38,28 @@ public class PipelineServiceImpl extends AbstractSimpleManagerService existsContainer = pipelineService.existsById(jsonIds);
if (!existsContainer.isAllFound()) {
- final List newPipelines = pipelineJsons.stream()
- .filter(json -> existsContainer.getIdNoFound().contains(json.getId()))
- .map(json -> conversionService.convert(json, Pipeline.class))
- .peek(
- pipeline -> pipeline.setProject(project)
- ).collect(Collectors.toList());
- pipelineService.createAll(newPipelines);
+ final Collection idsNotFound = existsContainer.getIdNoFound();
+
+ for (Long newId : idsNotFound) {
+ final Pipeline newPipeline = HttpParse.request(
+ MessageFormat.format(gitlabProperty.getUrlPipeline(), project.getId(), newId)
+ )
+ .header(ACCEPT)
+ .header(AUTHORIZATION, BEARER + personProperty.getToken())
+ .execute(PipelineJson.class)
+ .map(json -> {
+ final Pipeline pipeline = conversionService.convert(json, Pipeline.class);
+ pipeline.setProject(project);
+ return pipeline;
+ })
+ .orElseThrow(() -> new ConvertException("Ошибка обновления Pipelines"));
+ pipelineService.create(newPipeline);
+ }
+
}
pipelineJsons = getPipelineJsons(project.getId(), ++page);
diff --git a/gitlab-sdk/src/main/java/org/sadtech/bot/gitlab/sdk/domain/PipelineJson.java b/gitlab-sdk/src/main/java/org/sadtech/bot/gitlab/sdk/domain/PipelineJson.java
index 665ddef..933e7d7 100644
--- a/gitlab-sdk/src/main/java/org/sadtech/bot/gitlab/sdk/domain/PipelineJson.java
+++ b/gitlab-sdk/src/main/java/org/sadtech/bot/gitlab/sdk/domain/PipelineJson.java
@@ -33,6 +33,8 @@ public class PipelineJson {
private String ref;
+ private PersonJson user;
+
@JsonProperty("web_url")
private String webUrl;