
    #Ii:                     r    S SK Jr  S SKrS SKrS SKrSSKJr   " S S\R                  R                  5      r
g)    )basenameN   )Constsc                   .   \ rS rSrSrS r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       rS rSS\R2                  R4                  \R2                  R4                  4S jrS\R2                  R4                  \R2                  R4                  4S jr\R2                  R4                  S4S jrS rS rS r Sr!g)
GitRelease-   z}
This class represents GitReleases. The reference can be found here https://docs.github.com/en/rest/reference/repos#releases
c                 P    U R                  SU R                  R                  05      $ )Ntitle)get__repr___titlevalueselfs    7/venv/lib/python3.13/site-packages/github/GitRelease.py__repr__GitRelease.__repr__2   s"    $++*;*; <==    c                 d    U R                  U R                  5        U R                  R                  $ )z
:type: integer
)_completeIfNotSet_idr   r   s    r   idGitRelease.id5   s$    
 	txx(xx~~r   c                 d    U R                  U R                  5        U R                  R                  $ z
:type: string
)r   _bodyr   r   s    r   bodyGitRelease.body=   s&    
 	tzz*zzr   c                 d    U R                  U R                  5        U R                  R                  $ r   )r   r   r   r   s    r   r
   GitRelease.titleE   &    
 	t{{+{{   r   c                 d    U R                  U R                  5        U R                  R                  $ r   )r   	_tag_namer   r   s    r   tag_nameGitRelease.tag_nameM   &    
 	t~~.~~###r   c                 d    U R                  U R                  5        U R                  R                  $ r   )r   _target_commitishr   r   s    r   target_commitishGitRelease.target_commitishU   s*    
 	t556%%+++r   c                 d    U R                  U R                  5        U R                  R                  $ z
:type: bool
)r   _draftr   r   s    r   draftGitRelease.draft]   r    r   c                 d    U R                  U R                  5        U R                  R                  $ r+   )r   _prereleaser   r   s    r   
prereleaseGitRelease.prereleasee   *    
 	t//0%%%r   c                 d    U R                  U R                  5        U R                  R                  $ )z,
:type: :class:`github.NamedUser.NamedUser`
)r   _authorr   r   s    r   authorGitRelease.authorm   &    
 	t||,||!!!r   c                 d    U R                  U R                  5        U R                  R                  $ z
:type: datetime.datetime
)r   _created_atr   r   s    r   
created_atGitRelease.created_atu   r3   r   c                 d    U R                  U R                  5        U R                  R                  $ r:   )r   _published_atr   r   s    r   published_atGitRelease.published_at}   s*    
 	t112!!'''r   c                 d    U R                  U R                  5        U R                  R                  $ r   )r   _urlr   r   s    r   urlGitRelease.url   s$    
 	tyy)yyr   c                 d    U R                  U R                  5        U R                  R                  $ r   )r   _upload_urlr   r   s    r   
upload_urlGitRelease.upload_url   r3   r   c                 d    U R                  U R                  5        U R                  R                  $ r   )r   	_html_urlr   r   s    r   html_urlGitRelease.html_url   r%   r   c                 d    U R                  U R                  5        U R                  R                  $ r   )r   _tarball_urlr   r   s    r   tarball_urlGitRelease.tarball_url   *    
 	t001  &&&r   c                 d    U R                  U R                  5        U R                  R                  $ r   )r   _zipball_urlr   r   s    r   zipball_urlGitRelease.zipball_url   rR   r   c                 d    U R                  U R                  5        U R                  R                  $ )z@
:type: list of :class:`github.GitReleaseAsset.GitReleaseAsset`
)r   _assetsr   r   s    r   assetsGitRelease.assets   r8   r   c                 T    U R                   R                  SU R                  5      u  pg)z
:calls: `DELETE /repos/{owner}/{repo}/releases/{release_id} <https://docs.github.com/en/rest/reference/repos#delete-a-release>`_
:rtype: None
DELETEN)
_requesterrequestJsonAndCheckrD   )r   headersdatas      r   delete_releaseGitRelease.delete_release   s"    
 ;;HdhhOr   Fc                 
   U[         R                  R                  L d  [        U[        5      (       d   S5       eU[         R                  R                  L d  [        U[        5      (       d   S5       e[        U[        5      (       d   U5       e[        U[        5      (       d   U5       e[        U[
        5      (       d   U5       e[        U[
        5      (       d   U5       eU[         R                  R                  L a  U R                  nUUUUUS.nU[         R                  R                  La  XgS'   U R                  R                  SU R                  US9u  p[         R                  R                  U R                  XSS9$ )	a=  
:calls: `PATCH /repos/{owner}/{repo}/releases/{release_id} <https://docs.github.com/en/rest/reference/repos#update-a-release>`_
:param name: string
:param message: string
:param draft: bool
:param prerelease: bool
:param tag_name: string
:param target_commitish: string
:rtype: :class:`github.GitRelease.GitRelease`
z%tag_name must be a str/unicode objectz-target_commitish must be a str/unicode object)r#   namer   r-   r1   r(   PATCH)inputT	completed)githubGithubObjectNotSet
isinstancestrboolr#   r]   r^   rD   r   )
r   rd   messager-   r1   r#   r(   post_parametersr_   r`   s
             r   update_releaseGitRelease.update_release   s{   & 6..555c:
 :
 	32	3 
  6#6#6#=#==cB
 B
 	;:	; 
 $$$*d*$'3''00'%&&--&*d++7Z7+v**111}}H $
 6#6#6#=#==2B./;;TXX_ < 
   ++OOWd , 
 	
r    c                 Z   [        U[        5      (       d   U5       e[        U[        5      (       d   U5       eU[        R                  R                  L d  [        U[        5      (       d   U5       eSU0nU[        R                  R                  L a  [        U5      US'   OXES'   0 nU[        R                  R                  La  X6S'   U R                  R                  SU R                  R                  S5      S   UUUS9u  px[        R                  R                  U R                  XxSS	9$ )
a2  
:calls: `POST https://<upload_url>/repos/{owner}/{repo}/releases/{release_id}/assets <https://docs.github.com/en/rest/reference/repos#upload-a-release-asset>`_
:param path: string
:param label: string
:param content_type: string
:param name: string
:rtype: :class:`github.GitReleaseAsset.GitReleaseAsset`
labelrd   Content-TypePOST{?r   )
parametersr_   rf   Trg   )rl   rm   ri   rj   rk   r   r]   requestBlobAndCheckrH   splitGitReleaseAsset)	r   pathru   content_typerd   rp   r_   resp_headersr`   s	            r   upload_assetGitRelease.upload_asset   s    $$$*d*$%%%,u,%v**111Zc5J5JPDPJ"E*6&&---&.tnOF#&*F#v22999&2N#!__@@OO!!$'*& A 
 %%55OO\4 6 
 	
r   c                    [        U[        5      (       d   U5       e[        U[        5      (       d   U5       e[        U[        5      (       d   U5       eXSS.nU[        R                  R
                  La  UO[        R                  nU[        U5      S.nU R                  R                  SU R                  R                  S5      S   UUUS9u  p[        R                  R                  U R                  XSS9$ )	a  Uploads an asset. Unlike ``upload_asset()`` this method allows you to pass in a file-like object to upload.
Note that this method is more strict and requires you to specify the ``name``, since there's no file name to infer these from.
:calls: `POST https://<upload_url>/repos/{owner}/{repo}/releases/{release_id}/assets <https://docs.github.com/en/rest/reference/repos#upload-a-release-asset>`_
:param file_like: binary file-like object, such as those returned by ``open("file_name", "rb")``. At the very minimum, this object must implement ``read()``.
:param file_size: int, size in bytes of ``file_like``
:param content_type: string
:param name: string
:param label: string
:rtype: :class:`github.GitReleaseAsset.GitReleaseAsset`
)ru   rd   )rv   zContent-Lengthrw   rx   r   )ry   r_   	file_likeTrg   )rl   rm   intri   rj   rk   r   defaultMediaTyper]   requestMemoryBlobAndCheckrH   r{   r|   )
r   r   	file_sizerd   r~   ru   rp   r_   r   r`   s
             r   upload_asset_from_memory#GitRelease.upload_asset_from_memory  s    $ $$$*d*$)S))494)%%%,u,%$)8 6#6#6#=#== (( 	
 $03y>R!__FFOO!!$'*& G 
 %%55OO\4 6 
 	
r   c                     [         R                  R                  [         R                  R                  U R                  U R                   S3S5      $ )z
:calls: `GET /repos/{owner}/{repo}/releases/{release_id}/assets <https://docs.github.com/en/rest/reference/repos#list-release-assets>`_
:rtype: :class:`github.PaginatedList.PaginatedList`
z/assetsN)ri   PaginatedListr|   r]   rD   r   s    r   
get_assetsGitRelease.get_assets<  sD    
 ##11""22OOxxj 	
 	
r   c                 "   [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l	        [         R                  R                  U l
        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        [         R                  R                  U l        g )N)ri   rj   rk   r   r   r   r"   r'   r,   r0   _generate_release_notesr5   rC   rG   rK   r;   r?   rO   rT   rX   r   s    r   _initAttributesGitRelease._initAttributesH  sM   &&--((//
))00,,33!'!4!4!;!;))00!..55'-':':'A'A$**11''..	!..55,,33!..55#0077"//66"//66**11r   c                    SU;   a  U R                  US   5      U l        SU;   a  U R                  US   5      U l        SU;   a  U R                  US   5      U l        SU;   a  U R                  US   5      U l        SU;   a  U R                  US   5      U l        SU;   a  U R                  US   5      U l        SU;   a  U R                  US   5      U l	        SU;   a  U R                  US   5      U l
        S	U;   a2  U R                  [        R                  R                  US	   5      U l        S
U;   a  U R                  US
   5      U l        SU;   a  U R                  US   5      U l        SU;   a  U R                  US   5      U l        SU;   a  U R%                  US   5      U l        SU;   a  U R%                  US   5      U l        SU;   a  U R                  US   5      U l        SU;   a  U R                  US   5      U l        SU;   a3  U R/                  [        R0                  R0                  US   5      U l        g g )Nr   r   rd   r#   r(   r-   r1   generate_release_notesr6   rD   rH   rL   r<   r@   rP   rU   rY   )_makeIntAttributer   _makeStringAttributer   r   r"   r'   _makeBoolAttributer,   r0   r   _makeClassAttributeri   	NamedUserr5   rC   rG   rK   _makeDatetimeAttributer;   r?   rO   rT   _makeListOfClassesAttributer|   rX   )r   
attributess     r   _useAttributesGitRelease._useAttributes[  sN   :--j.>?DHZ22:f3EFDJZ33Jv4FGDK#!66z*7MNDN+%)%>%>-.&D" j 11*W2EFDK:%#66z,7OPD#z1+/+B+B34,D( z!33  **Jx,@DL J11*U2CDDI:%#88L9QRD#!66z*7MNDN:%#:::l;STDZ'!%!<!<Z=W!XDJ& $ 9 9*]:S TDJ& $ 9 9*]:S TDz!;;&&66
88LDL "r   )rX   r5   r   r;   r,   r   rK   r   r0   r?   r"   rO   r'   r   rG   rC   rT   N)"__name__
__module____qualname____firstlineno____doc__r   propertyr   r   r
   r#   r(   r-   r1   r6   r<   r@   rD   rH   rL   rP   rU   rY   ra   ri   rj   rk   rq   r   r   r   r   r   __static_attributes__ r   r   r   r   -   s   >       ! ! $ $ , , ! ! & & " " & & ( (   & & $ $ ' ' ' ' " "P $$++,,33/
h ((//  ''$
V ((//'
R

2&*r   r   )os.pathr   github.GithubObjectri   github.GitReleaseAssetgithub.NamedUserrs   r   rj   CompletableGithubObjectr   r   r   r   <module>r      s1   H     X$$<< Xr   