11from datetime import datetime
22from hashlib import sha1
3- from typing import Iterable , List , Optional
3+ from typing import Any , Iterable , List , Optional
44
55import shared .rate_limits as rate_limits
66import stripe
1111import services .activation as activation
1212import timeseries .helpers as timeseries_helpers
1313from codecov .db import sync_to_async
14+ from codecov_auth .constants import OWNER_YAML_TO_STRING_KEY
1415from codecov_auth .helpers import current_user_part_of_org
1516from codecov_auth .models import (
1617 SERVICE_GITHUB ,
2627)
2728from graphql_api .helpers .ariadne import ariadne_load_local_graphql
2829from graphql_api .helpers .connection import (
30+ Connection ,
2931 build_connection_graphql ,
3032 queryset_to_connection ,
3133)
3840from services .profiling import ProfilingSummary
3941from services .redis_configuration import get_redis_connection
4042from timeseries .helpers import fill_sparse_measurements
41- from timeseries .models import Interval , MeasurementSummary
43+ from timeseries .models import Interval
4244from utils .config import get_config
4345
4446owner = ariadne_load_local_graphql (__file__ , "owner.graphql" )
5153@convert_kwargs_to_snake_case
5254def resolve_repositories (
5355 owner : Owner ,
54- info ,
55- filters = None ,
56- ordering = RepositoryOrdering .ID ,
57- ordering_direction = OrderingDirection .ASC ,
58- ** kwargs ,
59- ):
56+ info : GraphQLResolveInfo ,
57+ filters : Optional [ dict ] = None ,
58+ ordering : Optional [ RepositoryOrdering ] = RepositoryOrdering .ID ,
59+ ordering_direction : Optional [ OrderingDirection ] = OrderingDirection .ASC ,
60+ ** kwargs : Any ,
61+ ) -> Connection :
6062 current_owner = info .context ["request" ].current_owner
6163 okta_account_auths : list [int ] = info .context ["request" ].session .get (
6264 OKTA_SIGNED_IN_ACCOUNTS_SESSION_KEY , []
@@ -81,19 +83,19 @@ def resolve_repositories(
8183
8284@owner_bindable .field ("isCurrentUserPartOfOrg" )
8385@sync_to_async
84- def resolve_is_current_user_part_of_org (owner , info : GraphQLResolveInfo ):
86+ def resolve_is_current_user_part_of_org (owner : Owner , info : GraphQLResolveInfo ) -> bool :
8587 current_owner = info .context ["request" ].current_owner
8688 return current_user_part_of_org (current_owner , owner )
8789
8890
8991@owner_bindable .field ("yaml" )
90- def resolve_yaml (owner : Owner , info : GraphQLResolveInfo ):
92+ def resolve_yaml (owner : Owner , info : GraphQLResolveInfo ) -> Optional [ str ] :
9193 if owner .yaml is None :
92- return
94+ return None
9395 current_owner = info .context ["request" ].current_owner
9496 if not current_user_part_of_org (current_owner , owner ):
95- return
96- return yaml .dump (owner .yaml )
97+ return None
98+ return owner . yaml .get ( OWNER_YAML_TO_STRING_KEY , yaml . dump (owner .yaml ) )
9799
98100
99101@owner_bindable .field ("plan" )
@@ -134,7 +136,9 @@ def resolve_ownerid(owner: Owner, info: GraphQLResolveInfo) -> int:
134136
135137
136138@owner_bindable .field ("repository" )
137- async def resolve_repository (owner : Owner , info , name ):
139+ async def resolve_repository (
140+ owner : Owner , info : GraphQLResolveInfo , name : str
141+ ) -> Repository | NotFoundError :
138142 command = info .context ["executor" ].get_command ("repository" )
139143 okta_authenticated_accounts : list [int ] = info .context ["request" ].session .get (
140144 OKTA_SIGNED_IN_ACCOUNTS_SESSION_KEY , []
@@ -174,37 +178,43 @@ async def resolve_repository(owner: Owner, info, name):
174178
175179@owner_bindable .field ("numberOfUploads" )
176180@require_part_of_org
177- async def resolve_number_of_uploads (owner : Owner , info , ** kwargs ):
181+ async def resolve_number_of_uploads (
182+ owner : Owner , info : GraphQLResolveInfo , ** kwargs : Any
183+ ) -> int :
178184 command = info .context ["executor" ].get_command ("owner" )
179185 return await command .get_uploads_number_per_user (owner )
180186
181187
182188@owner_bindable .field ("isAdmin" )
183189@require_part_of_org
184- def resolve_is_current_user_an_admin (owner : Owner , info : GraphQLResolveInfo ):
190+ def resolve_is_current_user_an_admin (owner : Owner , info : GraphQLResolveInfo ) -> bool :
185191 current_owner = info .context ["request" ].current_owner
186192 command = info .context ["executor" ].get_command ("owner" )
187193 return command .get_is_current_user_an_admin (owner , current_owner )
188194
189195
190196@owner_bindable .field ("hashOwnerid" )
191197@require_part_of_org
192- def resolve_hash_ownerid (owner : Owner , info : GraphQLResolveInfo ):
198+ def resolve_hash_ownerid (owner : Owner , info : GraphQLResolveInfo ) -> str :
193199 hash_ownerid = sha1 (str (owner .ownerid ).encode ())
194200 return hash_ownerid .hexdigest ()
195201
196202
197203@owner_bindable .field ("orgUploadToken" )
198204@require_part_of_org
199- def resolve_org_upload_token (owner : Owner , info , ** kwargs ):
205+ def resolve_org_upload_token (
206+ owner : Owner , info : GraphQLResolveInfo , ** kwargs : Any
207+ ) -> str :
200208 command = info .context ["executor" ].get_command ("owner" )
201209 return command .get_org_upload_token (owner )
202210
203211
204212@owner_bindable .field ("defaultOrgUsername" )
205213@sync_to_async
206214@require_part_of_org
207- def resolve_org_default_org_username (owner : Owner , info , ** kwargs ) -> int :
215+ def resolve_org_default_org_username (
216+ owner : Owner , info : GraphQLResolveInfo , ** kwargs : Any
217+ ) -> Optional [str ]:
208218 return None if owner .default_org is None else owner .default_org .username
209219
210220
@@ -213,13 +223,13 @@ def resolve_org_default_org_username(owner: Owner, info, **kwargs) -> int:
213223@convert_kwargs_to_snake_case
214224def resolve_measurements (
215225 owner : Owner ,
216- info ,
226+ info : GraphQLResolveInfo ,
217227 interval : Interval ,
218228 after : Optional [datetime ] = None ,
219229 before : Optional [datetime ] = None ,
220230 repos : Optional [List [str ]] = None ,
221231 is_public : Optional [bool ] = None ,
222- ) -> Iterable [MeasurementSummary ]:
232+ ) -> Iterable [dict ]:
223233 current_owner = info .context ["request" ].current_owner
224234
225235 okta_authenticated_accounts : list [int ] = info .context ["request" ].session .get (
@@ -256,7 +266,7 @@ def resolve_measurements(
256266
257267@owner_bindable .field ("isCurrentUserActivated" )
258268@sync_to_async
259- def resolve_is_current_user_activated (owner : Owner , info : GraphQLResolveInfo ):
269+ def resolve_is_current_user_activated (owner : Owner , info : GraphQLResolveInfo ) -> bool :
260270 current_user = info .context ["request" ].user
261271 if not current_user .is_authenticated :
262272 return False
@@ -303,7 +313,7 @@ def resolve_is_github_rate_limited(
303313@convert_kwargs_to_snake_case
304314def resolve_owner_invoice (
305315 owner : Owner ,
306- info ,
316+ info : GraphQLResolveInfo ,
307317 invoice_id : str ,
308318) -> stripe .Invoice | None :
309319 return BillingService (requesting_user = owner ).get_invoice (owner , invoice_id )
@@ -371,7 +381,9 @@ def resolve_ai_enabled_repos(
371381
372382@owner_bindable .field ("uploadTokenRequired" )
373383@require_part_of_org
374- def resolve_upload_token_required (owner : Owner , info ) -> bool | None :
384+ def resolve_upload_token_required (
385+ owner : Owner , info : GraphQLResolveInfo
386+ ) -> bool | None :
375387 return owner .upload_token_required_for_public_repos
376388
377389
0 commit comments