§
    šŠtj%  ã                   ó¦   — d Z ddlmZmZmZmZmZ ddlmZ ddl	m
Z
mZmZ ddlmZ  G d„ de¦  «        Z G d„ d	e¦  «        Z G d
„ de
¦  «        ZdS )zUtil that calls Jira.é    )ÚAnyÚDictÚListÚOptionalÚUnion)Úget_from_dict_or_env)Ú	BaseModelÚ
ConfigDictÚmodel_validator)Ú	TypedDictc                   ó*   — e Zd ZU dZeed<   	 eed<   dS )ÚJiraOauth2TokenzJira OAuth2 token.Úaccess_tokenÚ
token_typeN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚ__annotations__© ó    ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/utilities/jira.pyr   r   
   s0   € € € € € € ØÐàÐÐÑØ#Ø€O€O�OØ5Ð5r   r   c                   ó*   — e Zd ZU dZeed<   	 eed<   dS )Ú
JiraOauth2zJira OAuth2.Ú	client_idÚtokenN)r   r   r   r   r   r   r   r   r   r   r   r      s0   € € € € € € ØÐà€N€N�NØ ØÐÐÑØÐr   r   c                   óÆ  — e Zd ZU dZdZeed<   dZeed<   dZe	e
         ed<   dZe	e
         ed<   	 dZe	eee
f                  ed<   	 dZe	e
         ed<   dZe	e         ed	<    ed
¬¦  «        Z ed¬¦  «        ededefd„¦   «         ¦   «         Zdedee         fd„Zdee         dee         fd„Zde
de
fd„Zde
fd„Zde
de
fd„Zde
de
fd„Zde
de
fd„Z de
de
de
fd„Z!dS )ÚJiraAPIWrappera}  
    Wrapper for Jira API. You can connect to Jira with either an API token or OAuth2.
    - with API token, you need to provide the JIRA_USERNAME and JIRA_API_TOKEN
        environment variables or arguments.
    ex: JIRA_USERNAME=your_username JIRA_API_TOKEN=your_api_token
    - with OAuth2, you need to provide the JIRA_OAUTH2 environment variable or
        argument as a dict having as fields "client_id" and "token" which is
        a dict containing at least "access_token" and "token_type".
    ex: JIRA_OAUTH2='{"client_id": "your_client_id", "token":
        {"access_token": "your_access_token","token_type": "bearer"}}'
    NÚjiraÚ
confluenceÚjira_usernameÚjira_api_tokenÚjira_oauth2Újira_instance_urlÚ
jira_cloudÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 ó|  — t          |ddd¬¦  «        }||d<   t          |ddd¬¦  «        }||d<   t          |ddd¬¦  «        }||d<   |rqt          |t          ¦  «        r\	 d	d
l}|                     |¦  «        }nA# t
          $ r t          d¦  «        ‚|j        j        $ r}t          d|› �¦  «        ‚d
}~ww xY wt          |dd¦  «        }||d<   d|v r |d         �t          |d         ¦  «        |d<   t          |dd¦  «        }| 	                    ¦   «         dk    }	|	|d<   |r|rt          d¦  «        ‚	 d	dl
m}
m} n# t
          $ r t          d¦  «        ‚w xY w|r4|dk    r ||||	¬¦  «        }n |||||	¬¦  «        } |
||||	¬¦  «        }n|r ||||	¬¦  «        } |
|||	¬¦  «        }||d<   ||d<   |S )z?Validate that api key and python package exists in environment.r"   ÚJIRA_USERNAMEÚ )Údefaultr#   ÚJIRA_API_TOKENr$   ÚJIRA_OAUTH2r   Nú@json is not installed. Please install it with `pip install json`z@The format of the JIRA_OAUTH2 string is not a valid dictionary: r%   ÚJIRA_INSTANCE_URLr&   Ú
JIRA_CLOUDÚtruezGYou have to provide either a jira_api_token or a jira_oauth2. Not both.)Ú
ConfluenceÚJiraz`atlassian-python-api is not installed. Please install it with `pip install atlassian-python-api`)Úurlr   Úcloud)r9   ÚusernameÚpasswordr:   )r9   Úoauth2r:   r    r!   )r   Ú
isinstancer   ÚjsonÚloadsÚImportErrorÚdecoderÚJSONDecodeErrorÚ
ValueErrorÚlowerÚ	atlassianr7   r8   )Úclsr+   r"   r#   r$   r?   Úer%   Újira_cloud_strr&   r7   r8   r    r!   s                 r   Úvalidate_environmentz#JiraAPIWrapper.validate_environment>   s  € õ -Ø�O _¸bð
ñ 
ô 
ˆð #0ˆˆÑå-ØÐ$Ð&6Àð
ñ 
ô 
ˆð $2ˆÐÑ å*Ø�M =¸"ð
ñ 
ô 
ˆð !,ˆˆ}Ñàð 	�: kµ3Ñ7Ô7ð 	ðØ���à"Ÿjšj¨Ñ5Ô5��øÝð ð ð Ý!ØVñô ð ð ”<Ô/ð ð ð Ý ð3Ø/0ð3ð 3ñô ð øøøøðøøøõ 1ØÐ'Ð)<ñ
ô 
Ðð '8ˆÐ"Ñ#à˜6Ð!Ð! f¨\Ô&:Ð&FÝ#& v¨lÔ';Ñ#<Ô#<ˆF�<Ñ å-¨f°lÀLÑQÔQˆØ#×)Ò)Ñ+Ô+¨vÒ5ˆ
Ø)ˆˆ|Ñàð 	˜kð 	Ýðñô ð ð
	Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2øÝð 	ð 	ð 	ÝðLñô ð ð	øøøð ð 	Ø Ò"Ð"Ø�tØ)Ø(Ø$ðñ ô ��ð �tØ)Ø*Ø+Ø$ð	ñ ô �ð $˜Ø%Ø&Ø'Ø ð	ñ ô ˆJˆJð ð 
	Ø�4Ø%Ø"Ø ðñ ô ˆDð
 $˜Ø%Ø"Ø ðñ ô ˆJð ˆˆv‰Ø)ˆˆ|Ñàˆs$   Á!A; Á;'B9Â"B4Â4B9Ä8E ÅEÚissuesc                 óÖ  — g }|d         D �]\}|d         }|d         d         }|d         d         dd…         }d|d         v r|d         d         d	         }nd }|d         d
         d	         }	 |d         d         d         }	n# t           $ r d}	Y nw xY wi }
|d                              dg ¦  «        D ]”}d|                     ¦   «         v r0|d         d         }|d         d         }|d         d         d         }d|                     ¦   «         v r0|d         d         }|d         d         }|d         d         d         }|||dœ}
Œ•|                     ||||	|||
dœ¦  «         �Œ^|S )NrK   ÚkeyÚfieldsÚsummaryÚcreatedr   é
   ÚpriorityÚnameÚstatusÚassigneeÚdisplayNameÚNoneÚ
issuelinksÚinwardIssueÚtypeÚinwardÚoutwardIssueÚoutward)rZ   rM   rO   )rM   rO   rP   rU   rR   rT   Úrelated_issues)Ú	ExceptionÚgetÚkeysÚappend)ÚselfrK   ÚparsedÚissuerM   rO   rP   rR   rT   rU   Ú
rel_issuesÚrelated_issueÚrel_typeÚrel_keyÚrel_summarys                  r   Úparse_issueszJiraAPIWrapper.parse_issues    sÑ  € ØˆØ˜HÔ%ð "	ñ "	ˆEØ˜”,ˆCØ˜H”o iÔ0ˆGØ˜H”o iÔ0°°2°Ô6ˆGØ˜U 8œ_Ð,Ð,Ø  œ?¨:Ô6°vÔ>��à�Ø˜8”_ XÔ.¨vÔ6ˆFð"Ø  œ?¨:Ô6°}ÔE��øÝð "ð "ð "Ø!���ð"øøøàˆJØ!& x¤×!4Ò!4°\À2Ñ!FÔ!Fð 	Xð 	X�Ø  M×$6Ò$6Ñ$8Ô$8Ð8Ð8Ø,¨VÔ4°XÔ>�HØ+¨MÔ:¸5ÔA�GØ"/°Ô">¸xÔ"HÈÔ"S�KØ! ]×%7Ò%7Ñ%9Ô%9Ð9Ð9Ø,¨VÔ4°YÔ?�HØ+¨NÔ;¸EÔB�GØ"/°Ô"?ÀÔ"IÈ)Ô"T�KØ&.°wÈ;ÐWÐW�
�
Ø�MŠMàØ&Ø&Ø (Ø (Ø$Ø&0ðð ñ
ô 
ð 
ñ 
ð ˆs   Á0BÂBÂBÚprojectsc           	      óÎ   — g }|D ]_}|d         }|d         }|d         }|                      d¦  «        }|                      d¦  «        }|                     |||||dœ¦  «         Œ`|S )NÚidrM   rS   ÚprojectTypeKeyÚstyle)rn   rM   rS   rZ   rp   )r`   rb   )	rc   rl   rd   Úprojectrn   rM   rS   rZ   rp   s	            r   Úparse_projectszJiraAPIWrapper.parse_projectsÇ   s‡   € ØˆØð 	ð 	ˆGØ˜”ˆBØ˜%”.ˆCØ˜6”?ˆDØ—;’;Ð/Ñ0Ô0ˆDØ—K’K Ñ(Ô(ˆEØ�MŠMØ #¨t¸TÈEÐRÐRñô ð ð ð ˆr   Úqueryc                 óÈ   — | j                              |¦  «        }|                      |¦  «        }dt          t	          |¦  «        ¦  «        z   dz   t          |¦  «        z   }|S )NúFound z	 issues:
)r    Újqlrk   r   Úlen)rc   rs   rK   Úparsed_issuesÚparsed_issues_strs        r   ÚsearchzJiraAPIWrapper.searchÔ   s_   € Ø”—’˜uÑ%Ô%ˆØ×)Ò)¨&Ñ1Ô1ˆà•s�3˜}Ñ-Ô-Ñ.Ô.Ñ.°Ñ=ÅÀMÑ@RÔ@RÑRð 	ð !Ð r   c                 óÆ   — | j                              ¦   «         }|                      |¦  «        }dt          t	          |¦  «        ¦  «        z   dz   t          |¦  «        z   }|S )Nru   z projects:
)r    rl   rr   r   rw   )rc   rl   Úparsed_projectsÚparsed_projects_strs       r   rq   zJiraAPIWrapper.projectÜ   s_   € Ø”9×%Ò%Ñ'Ô'ˆØ×-Ò-¨hÑ7Ô7ˆà•s�3˜Ñ/Ô/Ñ0Ô0Ñ0°>ÑAÅCÈÑDXÔDXÑXð 	ð #Ð"r   c                 óÂ   — 	 dd l }n# t          $ r t          d¦  «        ‚w xY w|                     |¦  «        }| j                             t          |¦  «        ¬¦  «        S )Nr   r3   )rN   )r?   rA   r@   r    Úissue_createÚdict©rc   rs   r?   Úparamss       r   r   zJiraAPIWrapper.issue_createä   st   € ð	ØˆKˆKˆKˆKøÝð 	ð 	ð 	ÝØRñô ð ð	øøøð —’˜EÑ"Ô"ˆØŒy×%Ò%­T°&©\¬\Ð%Ñ:Ô:Ð:ó   ‚ ‡!c                 ó°   — 	 dd l }n# t          $ r t          d¦  «        ‚w xY w|                     |¦  «        } | j        j        di t          |¦  «        ¤ŽS )Nr   r3   r   )r?   rA   r@   r!   Úcreate_pager€   r�   s       r   Úpage_createzJiraAPIWrapper.page_createî   sv   € ð	ØˆKˆKˆKˆKøÝð 	ð 	ð 	ÝØRñô ð ð	øøøð —’˜EÑ"Ô"ˆØ*ˆtŒÔ*Ð:Ð:­T°&©\¬\Ð:Ð:Ð:rƒ   c                 ó  — 	 dd l }n# t          $ r t          d¦  «        ‚w xY w|                     |¦  «        }t          | j        |d         ¦  «        } ||                     dg ¦  «        i |                     di ¦  «        ¤ŽS )Nr   r3   ÚfunctionÚargsÚkwargs)r?   rA   r@   Úgetattrr    r`   )rc   rs   r?   r‚   Újira_functions        r   ÚotherzJiraAPIWrapper.otherø   sœ   € ð	ØˆKˆKˆKˆKøÝð 	ð 	ð 	ÝØRñô ð ð	øøøð —’˜EÑ"Ô"ˆÝ ¤	¨6°*Ô+=Ñ>Ô>ˆØˆ}˜fŸjšj¨°Ñ4Ô4ÐQ¸¿
º
À8ÈRÑ8PÔ8PÐQÐQÐQrƒ   r*   c                 ó2  — |dk    r|                       |¦  «        S |dk    r|                      ¦   «         S |dk    r|                      |¦  «        S |dk    r|                      |¦  «        S |dk    r|                      |¦  «        S t          d|› �¦  «        ‚)Nrv   Úget_projectsÚcreate_issuer�   r…   zGot unexpected mode )rz   rq   r   r�   r†   rD   )rc   r*   rs   s      r   ÚrunzJiraAPIWrapper.run  s¦   € Ø�5Š=ˆ=Ø—;’;˜uÑ%Ô%Ð%Ø�^Ò#Ð#Ø—<’<‘>”>Ð!Ø�^Ò#Ð#Ø×$Ò$ UÑ+Ô+Ð+Ø�WŠ_ˆ_Ø—:’:˜eÑ$Ô$Ð$Ø�]Ò"Ð"Ø×#Ò# EÑ*Ô*Ð*åÐ:°DÐ:Ð:Ñ;Ô;Ð;r   )"r   r   r   r   r    r   r   r!   r"   r   r   r#   r$   r   r   r%   r&   Úboolr
   Úmodel_configr   Úclassmethodr   rJ   r   r€   rk   rr   rz   rq   r   r†   r�   r‘   r   r   r   r   r      s@  € € € € € € ð
ð 
ð €Dˆ#ÐÐÑà€J�ÐÐÑà#'€M�8˜C”=Ð'Ð'Ñ'à$(€N�H˜S”MÐ(Ð(Ñ(ØKà48€K�˜% 
¨C Ô0Ô1Ð8Ð8Ñ8ØKà'+Ð�x ”}Ð+Ð+Ñ+à!%€J�˜”Ð%Ð%Ñ%à�:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð^¨$ð ^°3ð ^ð ^ð ^ñ „[ñ $Ô#ð^ð@% 4ð %¨D°¬Jð %ð %ð %ð %ðN t¨D¤zð °d¸4´jð ð ð ð ð!˜Cð ! Cð !ð !ð !ð !ð#˜ð #ð #ð #ð #ð; #ð ;¨#ð ;ð ;ð ;ð ;ð; ð ;¨ð ;ð ;ð ;ð ;ð	R˜3ð 	R 3ð 	Rð 	Rð 	Rð 	Rð<˜ð < Cð <¨Cð <ð <ð <ð <ð <ð <r   r   N)r   Útypingr   r   r   r   r   Úlangchain_core.utilsr   Úpydanticr	   r
   r   Útyping_extensionsr   r   r   r   r   r   r   ú<module>r™      s	  ðØ Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð6ð 6ð 6ð 6ð 6�iñ 6ô 6ð 6ðð ð ð ð �ñ ô ð ðr<ð r<ð r<ð r<ð r<�Yñ r<ô r<ð r<ð r<ð r<r   