+
    4:j                       ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ]! ]
4      P                  4       P                  ^,          tRtRt ! R R]4      t]tR	R
/R R lltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R lt]R8X  d    ]! ]! 4       4      hR#   ] d%   t] ! R ] 2]PB                  R!7       ]! ^4      hRtAii ; i)"    )annotationsN)Path)Anyz	Full gatemainc                      ] tR t^tRtR# )MergeRefused N)__name__
__module____qualname____firstlineno____static_attributes__r	       I/home/user/tmp/united-pets-verifier-portability/tools/theme_safe_merge.pyr   r      s    r   r   checkTc               $    V ^8  d   QhRRRRRR/# )   args	list[str]r   boolreturnz subprocess.CompletedProcess[str]r	   )formats   "r   __annotate__r      s"      i 4 3S r   c          
     H   \         P                  ! V \        R \         P                  \         P                  RR7      pV'       d^   VP                  '       dL   \        RVP                   RRP                  V 4       RVP                  VP                  ,           RR  24      hV# )	TF)cwdtextstdoutstderrr   zcommand failed (z):  
Ni`)	
subprocessrunROOTPIPE
returncoder   joinr   r   )r   r   cps   &$ r   r"   r"      s    	$T*//R\RaRain	oB-bmm_C?OrSUS\S\_a_h_hShjojpRqQrsttIr   c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r	   )r   s   "r   r   r      s     R R9 R Rr   c                    \        V 4      p \        P                  ! VP                  4      #   \        P                   d'   p\        R RP                  T 4       RT 24      ThRp?ii ; i)zinvalid JSON from r   z: N)r"   jsonloadsr   JSONDecodeErrorr   r&   )r   r'   excs   &  r   json_cmdr.      s`    	TBRzz"))$$ R//?r#GHcQRs   - A(!A##A(c                   V ^8  d   QhRR/# r   r   strr	   )r   s   "r   r   r   %   s      3 r   c                     \        . RO4      p \        V P                  RR4      4      P                  4       pRV9  d   \	        RV: 24      hV# )ghnameWithOwner /z'could not resolve repository identity: )r3   repoview--jsonr4   )r.   r1   getstripr   )datavalues     r   	repo_namer>   %   sK    EFD"-.446E
%DUINOOLr   c                   V ^8  d   QhRR/# r0   r	   )r   s   "r   r   r   -   s     < <C <r   c                 L    \        . RO4      P                  P                  4       # )git)rA   z	rev-parseHEAD)r"   r   r;   r	   r   r   
local_headrC   -   s    +,3399;;r   c               $    V ^8  d   QhRRRRRR/# )r   r<   dict[str, Any]local_head_shar1   r   Noner	   )r   s   "r   r   r   1   s&     ] ]> ]3 ]4 ]r   c           	        V P                  R 4      R8w  d   \        RV P                  R 4       24      hV P                  R4      '       d   \        R4      hV P                  R4      \        8w  d'   \        RV P                  R4      : R\        : 24      h\        V P                  RR	4      4      p\	        V4      ^(8w  d   \        R
V: 24      hW8w  d   \        RV RV 24      hV P                  R. 4      ;'       g    . pV Uu. uF8  qDP                  R4      \
        8X  g   K  VP                  R4      R8X  g   K6  VNK:  	  ppV'       d;   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       gB   V Uu. uF'  pRVP                  R4      RVP                  R4      /NK)  	  pp\        RV 24      hR# u upi u upi )stateOPENzPR is not open: isDraftzPR is still draftbaseRefNamezPR targets z, expected 
headRefOidr5   zPR has invalid head SHA: z)local HEAD does not match PR head: local=z pr=statusCheckRollupnameworkflowNamezThemeFactory Verifyc              3     "   T F4  qP                  R 4      R8H  ;'       d    VP                  R4      R8H  x  K6  	  R# 5i)status	COMPLETED
conclusionSUCCESSN)r:   ).0cs   & r   	<genexpr>#validate_pr_gate.<locals>.<genexpr>?   s8     mhlcd55?k9^^aeeL>QU^>^^hls   >>TFrR   rT   z1Full gate is not successful for current PR head: N)r:   MergeGateErrorREQUIRED_BASEr1   lenREQUIRED_CHECKany)r<   rF   shachecksrW   fullobserveds   &&     r   validate_pr_gaterc   1   s   xxF"/0A/BCDDxx	011xx-/{488M+B*E[Q^Pabcc
dhh|R(
)C
3x2~8@AAHHXX\]`\abccXX)2.44"Ftv!v.!@AQUU>EZ^sEsAAvDtssmhlmsssmhlmmm\`a\`WXXquuXaeeL>QR\`aPQYPZ[\\ n uas   G'G?G-Gc               $    V ^8  d   QhRRRRRR/# r   r7   r1   printr   rE   r	   )r   s   "r   r   r   D   s!      S c n r   c           
     j    R p\        RRR\        V4      RV RV.4      p\        V\        4       4       V# )z\number,state,isDraft,baseRefName,headRefOid,mergeable,mergeStateStatus,statusCheckRollup,urlr3   rf   r8   --repor9   )r.   r1   rc   rC   )r7   rf   fieldsr<   s   &&  r   
inspect_prrk   D   s7    kFT4R(D(FSTDT:<(Kr   c               $    V ^8  d   QhRRRRRR/# )r   r7   r1   r_   r   rE   r	   )r   s   "r   r   r   K   s!      c   r   c                   \        R RRV  RV R2RRRRRR	.	4      p\        V\        4      '       d   VP                  R
. 4      M. pV Uu. uF  pVP                  R4      \        8X  g   K  VP                  R4      V8X  g   K7  VP                  R4      R8X  g   KO  VP                  R4      R8X  g   Kg  VP                  R4      ;'       g    / P                  R4      R8X  g   K  VNK  	  ppV'       g   V Uu. uF  qDP                  R4      \        8X  g   K  RVP                  R4      RVP                  R4      RVP                  R4      RVP                  R4      RVP                  R4      ;'       g    / P                  R4      /NK  	  pp\        R\        : RV RV 24      hVP                  R R7       VR,          # u upi u upi )r3   apizrepos/z	/commits/z/check-runsz--methodGETz-fzfilter=latestzper_page=100
check_runsrO   head_sharR   	completedrT   successappslugzgithub-actionszexact-SHA GitHub Actions z success not found for z; observed=c                J    \        V P                  R 4      ;'       g    R4      # )completed_atr5   )r1   r:   )rs   &r   <lambda>%exact_sha_full_gate.<locals>.<lambda>e   s    s155#8#>#>B?r   )key)r.   
isinstancedictr:   r]   r   sort)r7   r_   r<   runsrx   matchesrb   s   &&     r   exact_sha_full_gater   K   s   evdV9SE=E4$ D *4D$)?)?488L"%RDa55=N* 	
EE*$ 	
 EE(O{* 	
 EE,9,	 	

 UU5\R$$V,0@@ 	
4    	
 UU6]n<fAEE*-!%%/aeeL1e**//7  	 	
 6~6HH_`c_ddopxoyz{{LL?L@2;+	
s=   
G+GGG3GG$G8GAG5Gc               $    V ^8  d   QhRRRRRR/# re   r	   )r   s   "r   r   r   i   s!      3 C N r   c                    \        W4      p\        VR ,          4      p\        W4      pRV RVRVR\        R\        RVP                  R4      RVP                  R	4      R
R/# )rM   r7   rf   rq   baserequired_checkcheck_run_ididcheck_details_urldetails_urlresultPASS)rk   r1   r   r[   r]   r:   )r7   rf   pr_datar_   r   s   &&   r   validater   i   sh    "G
gl#
$C*EbC.		$UYY}5&	 	r   c               $    V ^8  d   QhRRRRRR/# re   r	   )r   s   "r   r   r   y   s!         r   c                r    \        W4      pVR ,          p\        RRR\        V4      RV RRV.	4       RVR&   V# )	rq   r3   rf   mergeri   z--mergez--match-head-commitTmerged)r   r"   r1   )r7   rf   evidencer_   s   &&  r   r   r   y   sH    !H
:
C tWc"gxyBWY\]^HXOr   c                   V ^8  d   QhRR/# )r   r   rg   r	   )r   s   "r   r   r      s     	 	c 	r   c                    \         P                  ! R R7      p V P                  R\        R7       V P                  R4       V P                  RRR7       V P	                  4       pVP
                  ;'       g    \        4       pVP                  '       d   \        W!P                  4      M\        W!P                  4      p\        \        P                  ! V^RR	7      4       ^ # )
z(Fail-closed ThemeFactory merge authority)descriptionrf   )typeri   z--check-only
store_true)actionT)indent	sort_keys)argparseArgumentParseradd_argumentrg   
parse_argsr7   r>   
check_onlyr   rf   r   printr*   dumps)apr   r7   r   s       r   r   r      s    		 	 -W	XBOODsO#OOHOON<O8==?D99##	D(,XdGG$U4=QF	$**VA
67r   __main__ztheme-safe-merge: )file)"
__future__r   r   r*   r!   syspathlibr   typingr   __file__resolveparentsr#   r]   r[   RuntimeErrorr   rZ   r"   r.   r>   rC   rc   rk   r   r   r   r   r
   
SystemExitr-   r   r   r	   r   r   <module>r      s    "    
  H~''*	< 	 $ R<]&< 	 z     "3%(szz:ms   #B2 2C9CC