package Ġio . git pl ag . git . payload Ċ Ċ import Ġcom . be ust . kl ax on . JsonObject Ċ import Ġio . git pl ag . git . agent . Git lab Agent Ċ import Ġio . git pl ag . model . enums . Git Property Ċ import Ġio . git pl ag . model . manager . Repository DataManager Ċ import Ġio . git pl ag . model . repo . Branch Repository Ċ import Ġio . git pl ag . model . repo . PullRequest Repository Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ /** Ċ Ġ* ĠImplementation Ġof Ġthe Ġ[ Abstract Git Manager ] Ġfor Ġhandling ĠGit lab Ġweb hooks Ċ Ġ*/ Ċ class ĠGit lab Manager ( ĊĠĠĠ Ġpull Request Repository : ĠPull Request Repository , ĊĠĠĠ Ġrepository DataManager : ĠRepository DataManager , ĊĠĠĠ Ġprivate Ġval Ġgit lab Loader : ĠGit lab Agent , ĊĠĠĠ Ġbranch Repository : ĠBranch Repository Ċ ) Ġ: ĠAbstract Git Manager ( pull Request Repository , Ġrepository DataManager , Ġgit lab Loader , Ġbranch Repository ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġdate Formatter : ĠDateTime Formatter Ġ= ĠDateTime Formatter . of Pattern (" yyyy - MM - dd ĠHH : mm : ss ") ĊĠĠĠ Ġoverride Ġval Ġgit Ġ= ĠGit Property . GIT LAB ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject . pull Request : ĠJsonObject ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrequire NotNull ( obj (" object _ attributes ")) ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. number : ĠInt ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. int (" iid ") ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. creator Name : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. obj (" source ") ?. string (" namespace ") Ġ?: Ġthis ?. obj (" author ") ?. string (" username ") ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. source Repo Id : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. long (" source _ project _ id ") ?. toString () ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. main Repo Id : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. long (" target _ project _ id ") ?. toString () ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. source Repo FullName : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. obj (" source ") ?. string (" path _ with _ namespace ") Ġ?: Ġgit lab Loader . repo Name ById ( this . source Repo Id ) ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. main Repo FullName : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. obj (" target ") ?. string (" path _ with _ namespace ") Ġ?: Ġgit lab Loader . repo Name ById ( this . main Repo Id ) ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. source Head Sha : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. obj (" last _ commit ") ?. string (" id ") Ġ?: Ġthis ?. string (" sha ") ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. source Branch Name : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. string (" source _ branch ") ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. main Branch Name : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. string (" target _ branch ") ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. createdAt : ĠLocalDateTime ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ?. string (" created _ at ") ?. parse Date () ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject ?. updatedAt : ĠLocalDateTime ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ( this ?. string (" last _ edited _ at ") Ġ?: Ġthis ?. string (" updated _ at ")) ?. parse Date () ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject . push Repo Name : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġobj (" project ") ?. string (" path _ with _ namespace ") ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject . push Branch Name : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġstring (" ref ") ?. substring After (" refs / heads /") ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject . push Repo Id : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġlong (" project _ id ") ?. toString () ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject . push Last Updated : ĠLocalDateTime ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġarray < JsonObject >(" commits ") ?. last ()?. string (" timestamp ") ?. parse Date () ĊĊĠĠĠ Ġoverride Ġval ĠJsonObject . branch UpdatedAt : ĠLocalDateTime ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġobj (" commit ") ?. string (" committed _ date "). parse Date () ĊĊĠĠĠ Ġoverride Ġfun Ġpr From The Same Repo ( json : ĠJsonObject ) Ġ= ĊĠĠĠĠĠĠĠ Ġjson . run Ġ{ Ġlong (" source _ project _ id ") Ġ== Ġlong (" target _ project _ id ") Ġ} Ċ }