diff --git a/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JGitExt.kt b/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JGitExt.kt index 30d361d..e265fa3 100644 --- a/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JGitExt.kt +++ b/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JGitExt.kt @@ -37,6 +37,7 @@ fun Git.log(since: AnyObjectId? = null, until: AnyObjectId? = null): List = repository.refDatabase.getRefsByPrefix(Constants.R_TAGS) .map { it.resolveTag(repository) } + .filter { it.checkInTree(repository) } .sortedByDescending { it.dateTime } fun Ref.resolveTag(repo: Repository): Tag = RevWalk(repo).use { walk -> @@ -55,6 +56,10 @@ fun Ref.resolveTag(repo: Repository): Tag = RevWalk(repo).use { walk -> return rev.resolve((target as RevCommit).resolve(repo)) } +fun Tag.checkInTree(repo: Repository): Boolean = RevWalk(repo).use { walk -> + walk.isMergedInto(walk.parseCommit(commit.id), walk.parseCommit(repo.resolve("HEAD"))) +} + fun RevTag.resolve(commit: Commit): Tag { val ident = taggerIdent return Tag(