mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 16:35:45 +01:00
adjust ChangesetTrailerExtractor so that we don't check if user already exists
This commit is contained in:
committed by
René Pfeuffer
parent
bb1126befc
commit
e451bb618e
@@ -26,27 +26,24 @@ package sonia.scm.api.v2.resources;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import sonia.scm.repository.ChangesetTrailerTypes;
|
||||
import sonia.scm.user.DisplayUser;
|
||||
import sonia.scm.user.UserDisplayManager;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class ChangesetTrailerExtractor {
|
||||
|
||||
private final UserDisplayManager userDisplayManager;
|
||||
private final ChangesetTrailerTypes changesetTrailerTypes;
|
||||
|
||||
@Inject
|
||||
public ChangesetTrailerExtractor(UserDisplayManager userDisplayManager, ChangesetTrailerTypes changesetTrailerTypes) {
|
||||
this.userDisplayManager = userDisplayManager;
|
||||
public ChangesetTrailerExtractor(ChangesetTrailerTypes changesetTrailerTypes) {
|
||||
this.changesetTrailerTypes = changesetTrailerTypes;
|
||||
}
|
||||
|
||||
Map<String, PersonDto> extractTrailersFromCommitMessage(String commitMessage) {
|
||||
|
||||
HashMap<String, PersonDto> persons = new HashMap<>();
|
||||
List<TrailerPersonDto> extractTrailersFromCommitMessage(String commitMessage) {
|
||||
List<TrailerPersonDto> persons = new ArrayList<>();
|
||||
|
||||
try (Scanner scanner = new Scanner(commitMessage)) {
|
||||
scanner.useDelimiter(Pattern.compile("[\\n;]"));
|
||||
@@ -55,30 +52,29 @@ public class ChangesetTrailerExtractor {
|
||||
|
||||
for (String trailerType : changesetTrailerTypes.getTrailerTypes()) {
|
||||
if (line.contains(trailerType)) {
|
||||
String mail = line.split("<|>")[1];
|
||||
persons.put(trailerType, createPersonDtoFromUser(mail));
|
||||
TrailerPersonDto personDto = createPersonDtoFromUser(line);
|
||||
personDto.setTrailerType(trailerType);
|
||||
persons.add(personDto);
|
||||
}
|
||||
}
|
||||
|
||||
/* if (line.contains("Co-authored-by")) {
|
||||
persons.put("Co-authored-by", createPersonDtoFromUser(mail));
|
||||
}
|
||||
if (line.contains("Reviewed-by")) {
|
||||
persons.put("Reviewed-by", createPersonDtoFromUser(mail));
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return persons;
|
||||
}
|
||||
|
||||
private PersonDto createPersonDtoFromUser(String mail) {
|
||||
DisplayUser displayUser = userDisplayManager.autocomplete(mail).iterator().next();
|
||||
PersonDto personDto = new PersonDto();
|
||||
personDto.setName(displayUser.getDisplayName());
|
||||
personDto.setMail(displayUser.getMail());
|
||||
private TrailerPersonDto createPersonDtoFromUser(String line) {
|
||||
TrailerPersonDto personDto = new TrailerPersonDto();
|
||||
|
||||
String[] splittedTrailer = line.split("[:<>]");
|
||||
|
||||
if (splittedTrailer.length > 1) {
|
||||
personDto.setName(splittedTrailer[1].trim());
|
||||
if (splittedTrailer.length > 2) {
|
||||
personDto.setMail(splittedTrailer[2]);
|
||||
}
|
||||
}
|
||||
|
||||
return personDto;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ package sonia.scm.api.v2.resources;
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.servlet.ServletScopes;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import sonia.scm.repository.ChangesetTrailerTypes;
|
||||
import sonia.scm.web.api.RepositoryToHalMapper;
|
||||
|
||||
public class MapperModule extends AbstractModule {
|
||||
@@ -77,6 +78,7 @@ public class MapperModule extends AbstractModule {
|
||||
bind(MeDtoFactory.class);
|
||||
bind(UIPluginDtoMapper.class);
|
||||
bind(UIPluginDtoCollectionMapper.class);
|
||||
bind(ChangesetTrailerTypes.class).to(ChangesetTrailerExtractor.TrailerTypes.class);
|
||||
|
||||
bind(ScmPathInfoStore.class).in(ServletScopes.REQUEST);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user