
    ,Ofy                    r    d dl mZ d dlmZmZ d dlZd dlZd dlmZm	Z	m
Z
mZmZ erd dlmZ  G d de	      Zy)    )annotations)TYPE_CHECKINGAnyN)	AttributeCompletableGithubObjectNotSetOptis_optional)	GitObjectc                  r    e Zd ZdZddZddZedd       Zedd       Zedd       Z	ddZ
efddZdd	Zy
)GitRefz
    This class represents GitRefs.

    The reference can be found here
    https://docs.github.com/en/rest/reference/git#references

    c                F    t         | _        t         | _        t         | _        y N)r   _object_ref_urlselfs    -lib/python3.12/site-packages/github/GitRef.py_initAttributeszGitRef._initAttributes>   s    -3$*	$*	    c                P    | j                  d| j                  j                  i      S )Nref)get__repr__r   valuer   s    r   __repr__zGitRef.__repr__C   s     		 899r   c                d    | j                  | j                         | j                  j                  S r   )_completeIfNotSetr   r   r   s    r   objectzGitRef.objectF   s$    t||,||!!!r   c                d    | j                  | j                         | j                  j                  S r   )r   r   r   r   s    r   r   z
GitRef.refK   "    tyy)yyr   c                d    | j                  | j                         | j                  j                  S r   )r   r   r   r   s    r   urlz
GitRef.urlP   r!   r   c                V    | j                   j                  d| j                        \  }}y)z
        :calls: `DELETE /repos/{owner}/{repo}/git/refs/{ref} <https://docs.github.com/en/rest/reference/git#references>`_
        DELETEN)
_requesterrequestJsonAndCheckr#   )r   headersdatas      r   deletezGitRef.deleteU   s"     ;;HdhhOr   c                   t        |t              sJ |       t        |t              sJ |       t	        j
                  ||d      }| j                  j                  d| j                  |      \  }}| j                  |       y)z
        :calls: `PATCH /repos/{owner}/{repo}/git/refs/{ref} <https://docs.github.com/en/rest/reference/git#references>`_
        )shaforcePATCH)inputN)

isinstancestrr
   boolr   remove_unset_itemsr&   r'   r#   _useAttributes)r   r,   r-   post_parametersr(   r)   s         r   editzGitRef.edit[   su     #s#(S(#5$'..' 33C%4PQ;;GTXXUd;eD!r   c                    d|v r2| j                  t        j                  j                  |d         | _        d|v r| j	                  |d         | _        d|v r| j	                  |d         | _        y y )Nr   r   r#   )_makeClassAttributegithubr   r   _makeStringAttributer   r   )r   
attributess     r   r4   zGitRef._useAttributese   st    z!33F4D4D4N4NPZ[cPdeDLJ11*U2CDDIJ11*U2CDDI r   N)returnNone)r<   r1   )r<   r   )r,   r1   r-   z	Opt[bool]r<   r=   )r;   zdict[str, Any]r<   r=   )__name__
__module____qualname____doc__r   r   propertyr   r   r#   r*   r   r6   r4    r   r   r   r   5   sc    +
: " "    P 17 "Er   r   )
__future__r   typingr   r   github.GithubObjectr9   github.GitObjectr   r   r   r	   r
   r   r   rC   r   r   <module>rH      s/   R # %   \ \*6E$ 6Er   