@@ -757,6 +757,29 @@ public VCSTag createTag(String branchName, String tagName, String tagMessage) th
757
757
758
758
@ Override
759
759
public List <VCSTag > getTags () {
760
+ try (IVCSLockedWorkingCopy wc = repo .getVCSLockedWorkingCopy ();
761
+ Git git = getLocalGit (wc );
762
+ Repository gitRepo = git .getRepository ();
763
+ RevWalk rw = new RevWalk (gitRepo )) {
764
+ List <Ref > tagRefs = getTagRefs ();
765
+ List <VCSTag > res = new ArrayList <>();
766
+ RevTag revTag ;
767
+ RevCommit revCommit ;
768
+ for (Ref ref : tagRefs ) {
769
+ revTag = rw .parseTag (ref .getObjectId ());
770
+ revCommit = rw .parseCommit (ref .getObjectId ());
771
+ VCSCommit relatedCommit = new VCSCommit (revCommit .getName (), revCommit .getFullMessage (), revCommit .getAuthorIdent ().getName ());
772
+ VCSTag tag = new VCSTag (revTag .getTagName (), revTag .getFullMessage (), revTag .getTaggerIdent ().getName (), relatedCommit );
773
+ res .add (tag );
774
+ }
775
+ return res ;
776
+ } catch (Exception e ) {
777
+ throw new RuntimeException (e );
778
+ }
779
+
780
+ }
781
+
782
+ private List <Ref > getTagRefs () throws Exception {
760
783
try (IVCSLockedWorkingCopy wc = repo .getVCSLockedWorkingCopy ();
761
784
Git git = getLocalGit (wc );
762
785
Repository gitRepo = git .getRepository ();
@@ -776,17 +799,25 @@ public List<VCSTag> getTags() {
776
799
.tagList ()
777
800
.call ();
778
801
802
+ return refs ;
803
+ }
804
+ }
805
+
806
+ @ Override
807
+ public VCSTag getLastTag () {
808
+ try (IVCSLockedWorkingCopy wc = repo .getVCSLockedWorkingCopy ();
809
+ Git git = getLocalGit (wc );
810
+ Repository gitRepo = git .getRepository ();
811
+ RevWalk rw = new RevWalk (gitRepo )) {
812
+
813
+ List <Ref > tagRefs = getTagRefs ();
779
814
RevTag revTag ;
780
815
RevCommit revCommit ;
781
- List <VCSTag > res = new ArrayList <>();
782
- for (Ref ref : refs ) {
783
- revTag = rw .parseTag (ref .getObjectId ());
784
- revCommit = rw .parseCommit (ref .getObjectId ());
785
- VCSCommit relatedCommit = new VCSCommit (revCommit .getName (), revCommit .getFullMessage (), revCommit .getAuthorIdent ().getName ());
786
- VCSTag tag = new VCSTag (revTag .getTagName (), revTag .getFullMessage (), revTag .getTaggerIdent ().getName (), relatedCommit );
787
- res .add (tag );
788
- }
789
- return res ;
816
+ Ref ref = tagRefs .get (0 );
817
+ revTag = rw .parseTag (ref .getObjectId ());
818
+ revCommit = rw .parseCommit (ref .getObjectId ());
819
+ VCSCommit relatedCommit = new VCSCommit (revCommit .getName (), revCommit .getFullMessage (), revCommit .getAuthorIdent ().getName ());
820
+ return new VCSTag (revTag .getTagName (), revTag .getFullMessage (), revTag .getTaggerIdent ().getName (), relatedCommit );
790
821
} catch (GitAPIException e ) {
791
822
throw new EVCSException (e );
792
823
} catch (Exception e ) {
0 commit comments