package Ġno . sk at te et aten . aur ora . go bo . integration . cant us Ċ Ċ import Ġno . sk at te et aten . aur ora . go bo . graphql . imag ere pository . Image Repo Dto Ċ import Ġjava . time . Instant Ċ Ċ enum Ġclass ĠImage Tag Type Ġ{ ĊĠĠĠ ĠL ATE ST , ĊĠĠĠ ĠS NAP SHOT , ĊĠĠĠ ĠMA JOR , ĊĠĠĠ ĠMIN OR , ĊĠĠĠ ĠBUG FIX , ĊĠĠĠ ĠA UR ORA _ VERSION , ĊĠĠĠ ĠA UR ORA _ SNAPSHOT _ VERSION , ĊĠĠĠ ĠCOMMIT _ HASH ; ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠtypeOf ( tag : ĠString ): ĠImage Tag Type Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . lowercase () Ġ== Ġ" latest " Ġ-> ĠL ATE ST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . lowercase (). endsWith ("- snapshot ") Ġ-> ĠS NAP SHOT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . lowercase (). startsWith (" snapshot - ") Ġ-> ĠA UR ORA _ SNAPSHOT _ VERSION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIt Ġis Ġimportant Ġthat ĠCOMMIT _ HASH Ġis Ġprocessed Ġbefore ĠMA JOR Ġto Ġavoid Ġa Ġhash Ġlike Ġ 1 9 8 4 0 1 2 Ġto Ġbe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġconsidered Ġa ĠMA JOR Ġversion Ġ( alth ough , Ġtechnically Ġit Ġcould Ġbe Ġmajor Ġversion Ġit Ġis Ġnot Ġvery Ġlikely ). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . matches ( Regex ("^ [ 0 - 9 abcdef ]{ 7 }$ ")) Ġ-> ĠCOMMIT _ HASH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . matches ( Regex ("^ \\ d +$ ")) Ġ-> ĠMA JOR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . matches ( Regex ("^ \\ d + \\. \\ d +$ ")) Ġ-> ĠMIN OR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . matches ( Regex ("^ \\ d + \\. \\ d + \\. \\ d +$ ")) Ġ-> ĠBUG FIX ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠA UR ORA _ VERSION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠTag ( val Ġname : ĠString , Ġval Ġtype : ĠImage Tag Type Ġ= ĠImage Tag Type . type Of ( name )) Ċ Ċ data Ġclass ĠTags Dto ( val Ġtags : ĠList < Tag >) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġto Dto ( tag Response : ĠA ur ora Response < Tag Resource >) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTags Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Response . items . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTag ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġit . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġit . type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. reversed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠImage Tag Dto ( ĊĠĠĠ Ġval Ġdocker Digest : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġimage Tag : ĠString , ĊĠĠĠ Ġval Ġcreated : ĠInstant ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġimage Repo Dto : ĠImage Repo Dto Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġto Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Tag Response : ĠA ur ora Response < Image Tag Resource >, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtagName : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Repo Dto : ĠImage Repo Dto ĊĠĠĠĠĠĠĠ Ġ): ĠImage Tag Dto Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Tag Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocker Digest Ġ= Ġimage Tag Response . items [ 0 ]. docker Digest , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Tag Ġ= ĠtagName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreated Ġ= Ġimage Tag Response . items [ 0 ]. timeline . build Ended , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Repo Dto Ġ= Ġimage Repo Dto ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ