File tree 3 files changed +28
-22
lines changed
backend/analytics_server/mhq
3 files changed +28
-22
lines changed Original file line number Diff line number Diff line change @@ -168,12 +168,25 @@ def get_team_lead_time_trends(
168
168
for week , average_lead_time_metrics in weekly_lead_time_metrics_avg_map .items ()
169
169
}
170
170
171
- @app .route ("/teams/<team_id>/prs/merged_not_reviwed" , methods = {"GET" })
172
- def merge_not_reviwed (team_id : str ):
171
+ @app .route ("/teams/<team_id>/prs/merged_without_review" , methods = {"GET" })
172
+ @queryschema (
173
+ Schema (
174
+ {
175
+ Required ("from_time" ): All (str , Coerce (datetime .fromisoformat )),
176
+ Required ("to_time" ): All (str , Coerce (datetime .fromisoformat )),
177
+ }
178
+ ),
179
+ )
180
+ def merged_without_review (
181
+ team_id : str ,
182
+ from_time : datetime ,
183
+ to_time : datetime
184
+ ):
173
185
query_validator = get_query_validator ()
174
186
team : Team = query_validator .team_validator (team_id )
187
+ interval : Interval = query_validator .interval_validator (from_time , to_time )
175
188
pr_analytics = get_pr_analytics_service ()
176
- result = pr_analytics .get_prs_not_reviewed_merged (team .id )
177
- return result
178
- # return {'message':'hellothere' }
189
+ result = pr_analytics .get_prs_merged_without_review (team .id , interval )
190
+ prs_map = [ pr . id for pr in result ]
191
+ return {'PrsWithoutReviewMerged' : prs_map }
179
192
Original file line number Diff line number Diff line change 1
1
from mhq .store .models .code import OrgRepo , PullRequest
2
2
from mhq .store .repos .code import CodeRepoService
3
3
4
- from typing import List , Optional
4
+
5
+ from typing import List ,Optional
6
+ from mhq .utils .time import Interval
5
7
6
8
7
9
class PullRequestAnalyticsService :
@@ -11,8 +13,8 @@ def __init__(self, code_repo_service: CodeRepoService):
11
13
def get_prs_by_ids (self , pr_ids : List [str ]) -> List [PullRequest ]:
12
14
return self .code_repo_service .get_prs_by_ids (pr_ids )
13
15
14
- def get_prs_not_reviewed_merged (self ,team_id ) :
15
- return self .code_repo_service .get_prs_not_reviewed_merged (team_id )
16
+ def get_prs_merged_without_review (self ,team_id : str , interval : Interval ) -> List [ PullRequest ] :
17
+ return self .code_repo_service .get_prs_merged_without_review (team_id , interval )
16
18
17
19
def get_team_repos (self , team_id : str ) -> List [OrgRepo ]:
18
20
return self .code_repo_service .get_team_repos (team_id )
Original file line number Diff line number Diff line change @@ -348,23 +348,14 @@ def get_team_repos(self, team_id) -> List[OrgRepo]:
348
348
return self .get_repos_by_ids (team_repo_ids )
349
349
350
350
@rollback_on_exc
351
- def get_prs_not_reviewed_merged (self ,team_id ) :
351
+ def get_prs_merged_without_review (self ,team_id , interval ) -> List [ PullRequest ] :
352
352
AllOrg = self .get_team_repos (team_id )
353
353
AllOrg_ids = [tr .id for tr in AllOrg ]
354
- print (AllOrg )
355
- AllPullRequestEventReviweinOrgIds = (self ._db .session .query (PullRequestEvent )
356
- .filter (PullRequestEvent .org_repo_id .in_ (AllOrg_ids ))
357
- .all ()
358
- )
359
- ListofReviwedPrs = [ tr .pull_request_id for tr in AllPullRequestEventReviweinOrgIds ]
360
- AllPullRequestMergedNotReviwed = (self ._db .session .query (PullRequest )
361
- .filter (PullRequest .id .not_in (ListofReviwedPrs ))
362
- .filter (PullRequest .state == PullRequestState .MERGED )
354
+ return (self ._db .session .query (PullRequest )
355
+ .filter (PullRequest .repo_id .in_ (AllOrg_ids ))
356
+ .filter (PullRequest .merge_time == None )
357
+ .filter (PullRequest .created_in_db_at .between (interval .from_time ,interval .to_time ))
363
358
.all ())
364
- print (AllPullRequestMergedNotReviwed )
365
-
366
- return {"countofMergedReviewedPrs" : len (AllPullRequestEventReviweinOrgIds ),"countOfMergedNOtReviwedPrs" :len (AllPullRequestMergedNotReviwed )}
367
-
368
359
369
360
@rollback_on_exc
370
361
def get_team_repos_by_team_id (self , team_id : str ) -> List [TeamRepos ]:
You can’t perform that action at this time.
0 commit comments