package Ġdev . an at ol ii . internal Ċ Ċ import Ġorg . eclipse . j git . api . Git Ċ import Ġorg . eclipse . j git . rev walk . Rev Commit Ċ import Ġjava . io . File Ċ import Ġjava . time . Instant Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Zone Offset Ċ Ċ abstract Ġclass ĠGit Repository Ġ@ Jvm Over loads Ġconstructor ( repository Dir : ĠFile , Ġprivate Ġval Ġmain line Branch Name : ĠString Ġ= Ġ" main line ") Ġ{ ĊĠĠĠ Ġprivate Ġval Ġgit : ĠGit Ġ= ĠGit . open ( repository Dir ) ĊĊĠĠĠ Ġprotected Ġfun Ġfinalize () Ġ{ ĊĠĠĠĠĠĠĠ Ġgit . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġfun Ġgenerate Cal Ver (): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf NotNull ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgit . repository . branch . take Unless Ġ{ Ġis On Master Branch () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Commit Timestamp ()?. full P added DateTime () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). join ToString ( separator Ġ= Ġ"- "). replace ( old Char Ġ= Ġ'/', Ġnew Char Ġ= Ġ'-') ĊĊĠĠĠ Ġprivate Ġfun Ġlast Commit (): ĠRev Commit ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgit . repository . ref Database . refs . find Ġ{ Ġit . name Ġ== Ġ" HEAD " Ġ} ?. objectId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġgit . repository . parse Commit ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlast Commit Timestamp (): ĠLocalDateTime ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlast Commit ()?. commit Time ?. to Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠInstant . of Epoch Second ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠLocalDateTime . of Instant ( it , ĠZone Offset . UTC ) Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġis On Master Branch () Ġ= Ġgit . repository . branch Ġ== Ġmain line Branch Name Ċ } ĊĊ Ċ private Ġfun ĠInt . pad Z er ros ( length : ĠInt Ġ= Ġ 2 , Ġradix : ĠInt Ġ= Ġ 1 0 ) Ġ= ĠtoString ( radix ). pad Start ( length , Ġ' 0 ') Ċ private Ġfun ĠLocalDateTime . full P added Date () Ġ= Ġ"${ year }${ month Value . pad Z er ros ()} ${ day OfMonth . pad Z er ros () }" Ċ private Ġfun ĠLocalDateTime . full P added Time () Ġ= Ġ"${ hour . pad Z er ros ()} ${ minute . pad Z er ros ()} ${ second . pad Z er ros () }" Ċ private Ġfun ĠLocalDateTime . full P added DateTime () Ġ= Ġ"${ full P added Date ()}. ${ full P added Time () }"