
    ,Of,                        d dl mZ d dlmZ d dlmZmZ d dlZd dlZd dl	Zd dl
Zd dlZd dlmZmZmZmZmZmZ d dlmZ erd dlmZ d dlmZ d d	l	mZ d d
l
mZ d dlmZ  G d de      Zy)    )annotations)datetime)TYPE_CHECKINGAnyN)	AttributeCompletableGithubObjectNotSetOpt
is_definedis_optional)PaginatedList)CheckRun)	GitCommit)	GithubApp)PullRequest)
Repositoryc                  n   e Zd ZdZddZddZedd       Zedd       Zedd       Z	edd       Z
edd       Zedd	       Zedd
       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zd dZeeef	 	 	 	 	 	 	 d!dZd"dZy)#
CheckSuitez
    This class represents check suites.

    The reference can be found here
    https://docs.github.com/en/rest/reference/checks#check-suites

    c                d   t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _	        t         | _
        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        y )N)r	   _after_app_before_check_runs_url_conclusion_created_at_head_branch_head_commit	_head_sha_id_latest_check_runs_count_pull_requests_repository_status_updated_at_urlselfs    1lib/python3.12/site-packages/github/CheckSuite.py_initAttributeszCheckSuite._initAttributes=   s{    &,*0	'-/5+106,228)/#)8>%<B28'-06$*	    c                z    | j                  | j                  j                  | j                  j                  d      S )N)idurl)get__repr__r   valuer%   r&   s    r(   __repr__zCheckSuite.__repr__O   s(    txx~~diioo NOOr*   c                d    | j                  | j                         | j                  j                  S z
        :type: string
        )_completeIfNotSetr   r/   r&   s    r(   afterzCheckSuite.afterR   s&    
 	t{{+{{   r*   c                d    | j                  | j                         | j                  j                  S )z<
        :type: :class:`github.GithubApp.GithubApp`
        )r3   r   r/   r&   s    r(   appzCheckSuite.appZ   $    
 	tyy)yyr*   c                d    | j                  | j                         | j                  j                  S r2   )r3   r   r/   r&   s    r(   beforezCheckSuite.beforeb   &    
 	t||,||!!!r*   c                d    | j                  | j                         | j                  j                  S r2   )r3   r   r/   r&   s    r(   check_runs_urlzCheckSuite.check_runs_urlj   s*    
 	t334##)))r*   c                d    | j                  | j                         | j                  j                  S r2   )r3   r   r/   r&   s    r(   
conclusionzCheckSuite.conclusionr   *    
 	t//0%%%r*   c                d    | j                  | j                         | j                  j                  S z*
        :type: datetime.datetime
        )r3   r   r/   r&   s    r(   
created_atzCheckSuite.created_atz   r?   r*   c                d    | j                  | j                         | j                  j                  S r2   )r3   r   r/   r&   s    r(   head_branchzCheckSuite.head_branch   *    
 	t001  &&&r*   c                d    | j                  | j                         | j                  j                  S )z<
        :type: :class:`github.GitCommit.GitCommit`
        )r3   r   r/   r&   s    r(   head_commitzCheckSuite.head_commit   rE   r*   c                d    | j                  | j                         | j                  j                  S r2   )r3   r   r/   r&   s    r(   head_shazCheckSuite.head_sha   s&    
 	t~~.~~###r*   c                d    | j                  | j                         | j                  j                  S z
        :type: int
        )r3   r   r/   r&   s    r(   r,   zCheckSuite.id   s$    
 	txx(xx~~r*   c                d    | j                  | j                         | j                  j                  S rK   )r3   r    r/   r&   s    r(   latest_check_runs_countz"CheckSuite.latest_check_runs_count   s*    
 	t<<=,,222r*   c                d    | j                  | j                         | j                  j                  S )zH
        :type: list of :class:`github.PullRequest.PullRequest`
        )r3   r!   r/   r&   s    r(   pull_requestszCheckSuite.pull_requests   s*    
 	t223""(((r*   c                d    | j                  | j                         | j                  j                  S )z>
        :type: :class:`github.Repository.Repository`
        )r3   r"   r/   r&   s    r(   
repositoryzCheckSuite.repository   r?   r*   c                d    | j                  | j                         | j                  j                  S r2   )r3   r#   r/   r&   s    r(   statuszCheckSuite.status   r:   r*   c                d    | j                  | j                         | j                  j                  S rA   )r3   r$   r/   r&   s    r(   
updated_atzCheckSuite.updated_at   r?   r*   c                d    | j                  | j                         | j                  j                  S r2   )r3   r%   r/   r&   s    r(   r-   zCheckSuite.url   r7   r*   c                r    ddi}| j                   j                  d| j                   d|      \  }}}|dk(  S )z
        :calls: `POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest <https://docs.github.com/en/rest/reference/checks#rerequest-a-check-suite>`_
        :rtype: bool
        Acceptapplication/vnd.github.v3+jsonPOSTz
/rerequest)headers   )
_requesterrequestJsonr-   )r'   request_headersrS   _s       r(   	rerequestzCheckSuite.rerequest   sF    
 $%EF226dhhZz;R\k2l1}r*   c                t   t        |t              sJ |       t        |t              sJ |       t        |t              sJ |       i }t        |      r||d<   t        |      r||d<   t        |      r||d<   t        t        j
                  j
                  | j                  | j                   d|ddid      S )	z
        :calls: `GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs <https://docs.github.com/en/rest/reference/checks#list-check-runs-in-a-check-suite>`_
        
check_namerS   filterz/check-runsrX   rY   
check_runs)r[   	list_item)r   strr   r   githubr   r]   r-   )r'   rc   rS   rd   url_parameterss        r(   get_check_runszCheckSuite.get_check_runs   s     :s+7Z7+63'//'63'//')+j!+5N<(f'-N8$f'-N8$OO$$OOxxj$?@"
 	
r*   c                   d|v r| j                  |d         | _        d|v r2| j                  t        j                  j                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _
        d|v r| j                  |d         | _        d|v rGd	|d   v r|d   d	   |d   d
<   | j                  t        j                  j                  |d         | _        d|v r| j                  |d         | _        d	|v r| j                  |d	         | _        d|v r| j                  |d         | _        d|v r2| j%                  t        j&                  j&                  |d         | _        d|v r2| j                  t        j*                  j*                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        y y )Nr4   r6   r9   r<   r>   rB   rD   rG   r,   sharI   rM   rO   rQ   rS   rU   r-   )_makeStringAttributer   _makeClassAttributerh   r   r   r   r   r   _makeDatetimeAttributer   r   r   r   r   _makeIntAttributer   r    _makeListOfClassesAttributer   r!   r   r"   r#   r$   r%   )r'   
attributess     r(   _useAttributeszCheckSuite._useAttributes   sl   j 33Jw4GHDKJ001A1A1K1KZX]M^_DIz!44Z5IJDLz)#'#<#<ZHX=Y#ZD :%#88L9QRD:%#:::l;STDJ& $ 9 9*]:S TDJ& z-003=m3LT3R
=)%0 $ 8 89I9I9S9SU_`mUn oD#!66z*7MNDN:--j.>?DH$
2,0,B,B:NgCh,iD)j("&"B"B""..
?0K#D :%#778I8I8T8TV`amVnoDz!44Z5IJDL:%#:::l;STDJ11*U2CDDI r*   N)returnNone)rt   rg   )rt   r   )rt   r   )rt   r   )rt   int)rt   zlist[PullRequest])rt   r   )rt   bool)rc   Opt[str]rS   rx   rd   rx   rt   zPaginatedList[CheckRun])rr   zdict[str, Any]rt   ru   )__name__
__module____qualname____doc__r)   r0   propertyr4   r6   r9   r<   r>   rB   rD   rG   rI   r,   rM   rO   rQ   rS   rU   r-   ra   r	   rj   rs    r*   r(   r   r   4   s   +$P ! !   " " * * & & & & ' ' ' ' $ $   3 3 ) ) & & " " & &    &!!	

 
 	

 
!
8&Er*   r   )
__future__r   r   typingr   r   github.CheckRunrh   github.GitCommitgithub.GithubAppgithub.PullRequestgithub.Repositorygithub.GithubObjectr   r   r	   r
   r   r   github.PaginatedListr   r   r   r   r   r   r   r~   r*   r(   <module>r      sK   > #  %      h h .(**.,iE( iEr*   