public List getChanges()

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;
        }
    }