
    /cja
              	           d dl Z d dlZd dlmZ d dlmZ d dlZdefdZde	defdZ
	 dde	d	e	d
ee	         defdZdedefdZdS )    N)Optional)quotereturnc                      t          j        dd          t          j        dd          t          j        dd          t          j        dd          dS )zKRead config fresh each call so .env changes don't require a restart in dev.
DEVOPS_ORG DEVOPS_PROJECT
DEVOPS_PATDEVOPS_WORK_ITEM_TYPETask)orgprojectpatwork_item_type)osgetenv     U/home/m1-ai/DEPLOYMENTS/AI-PHONE/ZACK-UPDATE/fixing_leaked/DEVOPSAPI/devops_client.py_configr   	   sQ     yr**9-r22yr**)$;VDD	  r   r   c                     t          j        d|                                                                            }dd| iS )zEAzure DevOps Basic auth: base64 of an empty username + ':' + the PAT.:AuthorizationzBasic )base64	b64encodeencodedecode)r   tokens     r   _auth_headerr      sD    YYY--//007799E-e--..r   titledescriptionassigned_toc           	        K   t                      }|d         r|d         r|d         st          d          dt          |d                    dt          |d                    dt          |d                    d	}d
d| dd
d|dg}|r|                    d
d|d           i t	          |d                   ddi}t          j        d          4 d{V }|                    |||           d{V }|                                 |	                                cddd          d{V  S # 1 d{V swxY w Y   dS )a  Create an Azure DevOps work item. Returns the full API response dict.

    Important fields in the response:
      - id:             work item ID (int)
      - _links.html.href: web URL for browser viewing
      - fields:         all field values as set by Azure DevOps
    r   r   r   uR   Azure DevOps not configured — set DEVOPS_ORG, DEVOPS_PROJECT, DEVOPS_PAT in .envhttps://dev.azure.com//z/_apis/wit/workitems/$r   ?api-version=7.1addz/fields/System.Title)oppathvaluez/fields/System.Descriptionz/fields/System.AssignedTozContent-Typezapplication/json-patch+json      >@timeoutN)jsonheaders)
r   RuntimeErrorr   appendr   httpxAsyncClientpostraise_for_statusr.   )	r    r!   r"   cfgurl	patch_docr/   clientresps	            r   create_work_itemr;      sA      ))CJ 
3y> 
c%j 
`
 
 	

	Ps5z!2!2 	P 	PU3y>5J5J 	P 	P!&s+;'<!=!=	P 	P 	P  4uEE:[QQI  
"=TT	
 	
 	

s5z
"
"5 G
  ...       &[[9g[FFFFFFFFyy{{                             s   AD33
D= D=work_item_idc                   K   t                      }dt          |d                    dt          |d                    d|  d}t          j        d          4 d	{V }|                    |t          |d
                              d	{V }|                                 |                                cd	d	d	          d	{V  S # 1 d	{V swxY w Y   d	S )u=   Fetch a work item by ID — useful for status sync / polling.r$   r   r%   r   z/_apis/wit/workitems/r&   r+   r,   Nr   )r/   )r   r   r2   r3   getr   r5   r.   )r<   r6   r7   r9   r:   s        r   get_work_itemr?   E   s|     
))C	?s5z!2!2 	? 	?U3y>5J5J 	? 	? ,	? 	? 	?   ...       &ZZ\#e*-E-EZFFFFFFFFyy{{                             s   AC		
CC)N)r   r   typingr   urllib.parser   r2   dictr   strr   r;   intr?   r   r   r   <module>rE      s    				                  /c /d / / / / "&) ))) #) 
	) ) ) )X
c 
d 
 
 
 
 
 
r   