@@ -88,39 +88,32 @@ def get_next_binded_repo(clients: Clients, repositories: list[str]):
8888def get_assignee_story (git_object , client , token , repository ):
8989 assignee_result = ""
9090
91- try :
92- repo_owner = repository .owner .login
93- repo_name = repository .name
94- issue_index = git_object ._id # Для pull request и issue одинаково
95-
96- base_url = client .get_base_url ().rstrip ('/' )
97-
98- url = f"{ base_url } /repos/{ repo_owner } /{ repo_name } /issues/{ issue_index } /timeline"
99- headers = {
100- "Authorization" : f"Bearer { token } " if client is GitHubRepoAPI else f"token { token } " ,
101- "Accept" : "application/json"
102- }
103-
104- response = requests .get (url , headers = headers )
105- if response .status_code != 200 :
106- raise Exception (f"Failed to fetch issue timeline: { response .status_code } , { response .text } " )
107-
108- events = response .json ()
109-
110- for event in events :
111- if event .get ('event' ) in ["assigned" , "unassigned" ]:
112- date = event .get ('created_at' )
113- assigner = event .get ('actor' , {}).get ('login' , 'unknown' )
114- assignee = event .get ('assignee' , {}).get ('login' , 'unknown' )
115-
116- assignee_result += f"{ date } : { assigner } -"
117- if event ['event' ] == "unassigned" :
118- assignee_result += "/"
119- assignee_result += f"> { assignee } ; "
120-
121- sleep (TIMEDELTA )
122-
123- except Exception as e :
124- print (f"get_assignee_story(): error { e } " )
91+ repo_owner = repository .owner .login
92+ repo_name = repository .name
93+ issue_index = getattr (git_object , "number" , None ) or getattr (git_object , "index" , None ) or getattr (git_object , "_id" , None ) # Для pull request и issue одинаково
94+ print (issue_index )
95+
96+ base_url = client .get_base_url ().rstrip ('/' )
97+
98+ url = f"{ base_url } /repos/{ repo_owner } /{ repo_name } /issues/{ issue_index } /timeline"
99+ headers = {
100+ "Authorization" : f"Bearer { token } " if client is GitHubRepoAPI else f"token { token } " ,
101+ "Accept" : "application/json"
102+ }
103+
104+ response = requests .get (url , headers = headers )
105+ if response .status_code != 200 :
106+ raise Exception (f"Failed to fetch issue timeline: { response .status_code } , { response .text } " )
107+
108+ events = response .json ()
109+
110+ results = [
111+ f"{ event .get ('created_at' )} : { event .get ('actor' , {}).get ('login' , 'unknown' )} -"
112+ + ("/" if event .get ('event' ) == "unassigned" else "" )
113+ + f"> { event .get ('assignee' , {}).get ('login' , 'unknown' )} ; "
114+ for event in events
115+ if event .get ('event' ) in ["assigned" , "unassigned" ]
116+ ]
117+ assignee_result = '' .join (results )
125118
126119 return assignee_result
0 commit comments