in src/main/java/org/apache/sling/tooling/lc/git/GitChangeLogFinder.java [51:79]
public List<String> getChanges(String artifactId, String from, String to) throws IOException, GitAPIException {
Path repoPath = Paths.get(slingRepoCheckoutDir, artifactId.replace('.', '-'), ".git");
FileRepositoryBuilder repositoryBuilder = new FileRepositoryBuilder();
try (Repository repository = repositoryBuilder
.setGitDir(repoPath.toFile())
.readEnvironment() // scan environment GIT_* variables
.findGitDir() // scan up the file system tree
.setMustExist(true)
.build()) {
Ref fromTag = getTagChecked(repository, artifactId, from);
Ref toTag = getTagChecked(repository, artifactId, to);
Git git = Git.wrap(repository);
fromTag = repository.getRefDatabase().peel(fromTag);
toTag = repository.getRefDatabase().peel(toTag);
List<String> commits = new ArrayList<>();
git.log()
.addRange(fromTag.getPeeledObjectId(), toTag.getPeeledObjectId())
.call()
.forEach(c -> commits.add(c.getShortMessage()));
return commits;
}
}