/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense . Ċ Ġ* Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠMIT ĠLicense Ġis Ġincluded Ġin Ġthis Ġfile . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTerms Ġof Ġthe ĠMIT ĠLicense : Ċ Ġ* Ġ------------------------------------------------ --- Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ċ Ġ* Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ċ Ġ* Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ċ Ġ* Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ċ Ġ* Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT Ċ Ġ* ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN Ċ Ġ* ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , Ċ Ġ* ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE Ċ Ġ* ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . devops . stream . trigger . exception . handler Ċ Ċ import Ġcom . tencent . devops . common . api . exception . ErrorCode Exception Ċ import Ġcom . tencent . devops . process . yaml . v 2 . enums . Stream Object Kind Ċ import Ġcom . tencent . devops . stream . pojo . enums . Trigger Reason Ċ import Ġcom . tencent . devops . stream . trigger . actions . Base Action Ċ import Ġcom . tencent . devops . stream . trigger . exception . Commit Check Ċ import Ġcom . tencent . devops . stream . trigger . exception . Stream Trigger Base Exception Ċ import Ġcom . tencent . devops . stream . trigger . exception . Stream Trigger Exception Ċ import Ġcom . tencent . devops . stream . trigger . exception . Stream Trigger Third Exception Ċ import Ġcom . tencent . devops . stream . trigger . pojo . enums . Stream Commit Check State Ċ import Ġcom . tencent . devops . stream . trigger . service . Stream Event Service Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ /** Ċ Ġ* ĠStream è§¦åıĳ éĺ¶æ®µ ç»Łä¸Ģ å¼Ĥå¸¸ å¤ĦçĲĨ Ċ Ġ* Ġå°Ĩ æĭ¿ åĪ°çļĦ å¼Ĥå¸¸ æĮī è§ĦåĪĻ Ġ åģļ åħ¥ åºĵ ï¼Į åıĳ commit Ġcheck çŃī æĵįä½ľ Ċ Ġ* Ġ åĽłä¸º éľĢè¦ģ å¯¹ æľª çŁ¥ å¼Ĥå¸¸ åħ¨éĥ¨ æį ķ èİ· å¹¶ ä¿ĿçķĻ ä¿¡æģ¯ ï¼Į æīĢä»¥ åıªèĥ½ ä½¿çĶ¨ æīĭåĬ¨ åĩ½æķ° åİ» æĬ ĵ Ċ Ġ*/ Ċ @ Suppress (" ALL ") Ċ @ Service Ċ class ĠStream Trigger ExceptionHandler Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġstream Event Service : ĠStream Event Service Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Stream Trigger ExceptionHandler :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > Ġhandle ( ĊĠĠĠĠĠĠĠ Ġaction : ĠBase Action , ĊĠĠĠĠĠĠĠ Ġf : Ġ() Ġ-> ĠT ? ĊĠĠĠ Ġ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġf () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( e ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠErrorCode Exception Ġ-> Ġhandle ErrorCode Exception ( action , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStream Trigger Base Exception Ġ-> Ġhandle Stream Trigger Exception ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Stream Trigger ExceptionHandler | Unknown Ġerror | action | ${ action . format () }", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĿŀ å·² çŁ¥ è§¦åıĳ å¼Ĥå¸¸ åıª ä¿ĿåŃĺ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstream Event Service . save Trigger Not Build Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġaction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreason Ġ= ĠTrigger Reason . UNKNOWN _ ERROR . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreason Detail Ġ= ĠTrigger Reason . UNKNOWN _ ERROR . detail . format ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĺ² æŃ¢ Han l der å¤ĦçĲĨ è¿ĩç¨ĭä¸Ń æĬ¥éĶĻ ï¼Į åħ ľ åºķ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Stream Trigger ExceptionHandler | Handler Ġerror | action | ${ action . format () }", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ¶ä»ĸ å¾® æľįåĬ¡ è°ĥçĶ¨ çļĦ éĥ¨åĪĨ å¼Ĥå¸¸ ä¼ļ è¢« æķ´ åĲĪ ä¸º errorCode Ex ï¼Į è¿ĻéĩĮ åģļ ä¿Ŀ å®Ī å¤ĦçĲĨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġhandle ErrorCode Exception ( action : ĠBase Action , Ġe : ĠErrorCode Exception ): ĠNothing ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhandle Stream Trigger Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStream Trigger Third Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġaction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreason Params Ġ= Ġe . params ?. toList (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommit Check Ġ= ĠCommit Check ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠStream Commit Check State . FAILURE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorCode Ġ= Ġe . errorCode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorMessage Ġ= Ġe . default Message , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Params Ġ= Ġe . params ?. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå¯¹ å·² çŁ¥ è§¦åıĳ å¼Ĥå¸¸ åģļ éĢ»è¾ĳ å¤ĦçĲĨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġhandle Stream Trigger Exception ( e : ĠStream Trigger Base Exception ): ĠNothing ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( e Ġis ĠStream Trigger Exception Ġ&& Ġe . trigger Reason Ġ== ĠTrigger Reason . UNKNOWN _ ERROR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå¯¹ Un know Ġerror Ġ æīĵåį° æĹ¥å¿Ĺ æĸ¹ä¾¿ æİĴ æŁ¥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Stream Trigger ExceptionHandler | Unknown Ġerror | action | ${ e . action . format () }", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġe . action ĊĠĠĠĠĠĠĠ Ġval Ġcommit Check Ġ= Ġe . commit Check ĊĊĠĠĠĠĠĠĠ Ġ// Ġ æīĭåĬ¨ è§¦åıĳ çļĦ å¼Ĥå¸¸ ä¸įéľĢè¦ģ åħ¥ åºĵ ï¼Į éľĢè¦ģ çĽ´æİ¥ è¿ĶåĽŀ ç»Ļ çĶ¨æĪ· ĊĠĠĠĠĠĠĠ Ġif Ġ( e . action . metaData . stream Object Kind Ġ== ĠStream Object Kind . MAN UAL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġ( real Reason , Ġreal Reason Detail ) Ġ= ĠStream Trigger ExceptionHandler Util . get Reason ( e ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ å¯¹äºİ æľī æµģ æ°´ çº¿ ä¿¡æģ¯ çļĦ éľĢè¦ģ åıĳéĢģ commit Ġcheck , Ġæ ² ¡ æľīçļĦ çĽ´æİ¥ ä¿ĿåŃĺ åį³åı¯ ĊĠĠĠĠĠĠĠ Ġif Ġ( action . data . context . pipeline Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstream Event Service . save Trigger Not Build Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġaction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreason Ġ= Ġreal Reason , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreason Detail Ġ= Ġreal Reason Detail ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstream Event Service . save Build Not Build Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġaction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreason Ġ= Ġreal Reason , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreason Detail Ġ= Ġreal Reason Detail , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Commit Check Ġ= Ġcommit Check Ġ!= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommit Check Block Ġ= Ġcommit Check ?. block Ġ?: Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġ" v 2 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ } Ċ