package Ġeu . cq se . config Ċ Ċ import Ġeu . cq se . Git Repository Helper Ċ import Ġeu . cq se . team scale . client . Commit Descriptor Ċ import Ġorg . gradle . api . Project Ċ import Ġjava . io . IOException Ċ import Ġjava . io . Serializable Ċ Ċ /** ĠThe Ġcommit Ġobject Ġwhich Ġholds Ġthe Ġend Ġcommit Ġfor Ġwhich Ġwe Ġdo ĠTest ĠImp act ĠAnalysis . Ġ*/ Ċ class ĠCommit Ġ: ĠSerializable Ġ{ ĊĊĠĠĠ Ġ/** ĠThe Ġbranch Ġto Ġwhich Ġthe Ġartifacts Ġbelong Ġto . Ġ*/ ĊĠĠĠ Ġvar Ġbranch Name : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ?. trim () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠThe Ġtimestamp Ġof Ġthe Ġcommit Ġthat Ġhas Ġbeen Ġused Ġto Ġgenerate Ġthe Ġartifacts . Ġ*/ ĊĠĠĠ Ġvar Ġtimestamp : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ?. trim () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Commit Descriptor (): ĠCommit Descriptor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCommit Descriptor ( branch Name , Ġtimestamp ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopy WithDefault ( to Copy : ĠCommit , Ġdefault : ĠCommit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbranch Name Ġ= Ġto Copy . branch Name Ġ?: Ġdefault . branch Name ĊĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġto Copy . timestamp Ġ?: Ġdefault . timestamp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġvalidate ( project : ĠProject , Ġtest Task Name : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( branch Name Ġ== Ġnull Ġ|| Ġtimestamp Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommit Ġ= ĠGit Repository Helper . get Head Commit Descriptor ( project . rootDir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbranch Name Ġ= Ġbranch Name Ġ?: Ġcommit . branch Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġtimestamp Ġ?: Ġcommit . timestamp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . logger . error (" Could Ġnot Ġdetermine ĠTeam scale Ġupload Ġcommit Ġfor Ġ${ project . name } Ġ$ test Task Name ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ