@@ -301,26 +301,24 @@ def get_team_membership(self, member: str | NamedUser) -> Membership:
301301 headers , data = self ._requester .requestJsonAndCheck ("GET" , f"{ self .url } /memberships/{ member } " )
302302 return github .Membership .Membership (self ._requester , headers , data , completed = True )
303303
304- def add_to_repos (self , repo : Repository ) -> None :
304+ def add_to_repos (self , repo : str | Repository ) -> None :
305305 """
306306 :calls: `PUT /teams/{id}/repos/{org}/{repo} <https://docs.github.com/en/rest/reference/teams>`_
307307 """
308- assert isinstance (repo , github .Repository .Repository ), repo
309- headers , data = self ._requester .requestJsonAndCheck ("PUT" , f"{ self .url } /repos/{ repo ._identity } " )
308+ assert isinstance (repo , (str , github .Repository .Repository )), repo
309+ headers , data = self ._requester .requestJsonAndCheck (
310+ "PUT" , f"{ self .url } /repos/{ github .Repository .Repository .as_url_param (repo )} "
311+ )
310312
311- def get_repo_permission (self , repo : Repository ) -> Permissions | None :
313+ def get_repo_permission (self , repo : str | Repository ) -> Permissions | None :
312314 """
313315 :calls: `GET /teams/{id}/repos/{org}/{repo} <https://docs.github.com/en/rest/reference/teams>`_
314316 """
315- assert isinstance (repo , github .Repository .Repository ) or isinstance (repo , str ), repo
316- if isinstance (repo , github .Repository .Repository ):
317- repo = repo ._identity # type: ignore
318- else :
319- repo = urllib .parse .quote (repo , safe = "" )
317+ assert isinstance (repo , (str , github .Repository .Repository )), repo
320318 try :
321319 headers , data = self ._requester .requestJsonAndCheck (
322320 "GET" ,
323- f"{ self .url } /repos/{ repo } " ,
321+ f"{ self .url } /repos/{ github . Repository . Repository . as_url_param ( repo ) } " ,
324322 headers = {"Accept" : Consts .teamRepositoryPermissions },
325323 )
326324 return github .Permissions .Permissions (self ._requester , headers , data ["permissions" ])
@@ -332,38 +330,33 @@ def get_repo_permission(self, repo: Repository) -> Permissions | None:
332330 Team.set_repo_permission() is deprecated, use Team.update_team_repository() instead.
333331 """
334332 )
335- def set_repo_permission (self , repo : Repository , permission : str ) -> None :
333+ def set_repo_permission (self , repo : str | Repository , permission : str ) -> None :
336334 """
337335 :calls: `PUT /teams/{id}/repos/{org}/{repo} <https://docs.github.com/en/rest/reference/teams>`_
338336 :param repo: :class:`github.Repository.Repository`
339337 :param permission: string
340338 :rtype: None
341339 """
342-
343- assert isinstance (repo , github .Repository .Repository ), repo
340+ assert isinstance (repo , (str , github .Repository .Repository )), repo
344341 put_parameters = {
345342 "permission" : permission ,
346343 }
347344 headers , data = self ._requester .requestJsonAndCheck (
348- "PUT" , f"{ self .url } /repos/{ repo . _identity } " , input = put_parameters
345+ "PUT" , f"{ self .url } /repos/{ github . Repository . Repository . as_url_param ( repo ) } " , input = put_parameters
349346 )
350347
351- def update_team_repository (self , repo : Repository , permission : str ) -> bool :
348+ def update_team_repository (self , repo : str | Repository , permission : str ) -> bool :
352349 """
353350 :calls: `PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo} <https://docs.github.com/en/rest/reference/teams#check-team-permissions-for-a-repository>`_
354351 """
355- assert isinstance (repo , github .Repository .Repository ) or isinstance ( repo , str ), repo
352+ assert isinstance (repo , ( str , github .Repository .Repository )), repo
356353 assert isinstance (permission , str ), permission
357- if isinstance (repo , github .Repository .Repository ):
358- repo_url_param = repo ._identity
359- else :
360- repo_url_param = urllib .parse .quote (repo , safe = "" )
361354 put_parameters = {
362355 "permission" : permission ,
363356 }
364357 status , _ , _ = self ._requester .requestJson (
365358 "PUT" ,
366- f"{ self .organization .url } /teams/{ self .slug } /repos/{ repo_url_param } " ,
359+ f"{ self .organization .url } /teams/{ self .slug } /repos/{ github . Repository . Repository . as_url_param ( repo ) } " ,
367360 input = put_parameters ,
368361 )
369362 return status == 204
@@ -473,12 +466,14 @@ def has_in_members(self, member: NamedUser) -> bool:
473466 status , headers , data = self ._requester .requestJson ("GET" , f"{ self .url } /members/{ member ._identity } " )
474467 return status == 204
475468
476- def has_in_repos (self , repo : Repository ) -> bool :
469+ def has_in_repos (self , repo : str | Repository ) -> bool :
477470 """
478471 :calls: `GET /teams/{id}/repos/{owner}/{repo} <https://docs.github.com/en/rest/reference/teams>`_
479472 """
480- assert isinstance (repo , github .Repository .Repository ), repo
481- status , headers , data = self ._requester .requestJson ("GET" , f"{ self .url } /repos/{ repo ._identity } " )
473+ assert isinstance (repo , (str , github .Repository .Repository )), repo
474+ status , headers , data = self ._requester .requestJson (
475+ "GET" , f"{ self .url } /repos/{ github .Repository .Repository .as_url_param (repo )} "
476+ )
482477 return status == 204
483478
484479 def remove_membership (self , member : NamedUser ) -> None :
@@ -498,12 +493,14 @@ def remove_from_members(self, member: NamedUser) -> None:
498493 assert isinstance (member , github .NamedUser .NamedUser ), member
499494 headers , data = self ._requester .requestJsonAndCheck ("DELETE" , f"{ self .url } /members/{ member ._identity } " )
500495
501- def remove_from_repos (self , repo : Repository ) -> None :
496+ def remove_from_repos (self , repo : str | Repository ) -> None :
502497 """
503498 :calls: `DELETE /teams/{id}/repos/{owner}/{repo} <https://docs.github.com/en/rest/reference/teams>`_
504499 """
505- assert isinstance (repo , github .Repository .Repository ), repo
506- headers , data = self ._requester .requestJsonAndCheck ("DELETE" , f"{ self .url } /repos/{ repo ._identity } " )
500+ assert isinstance (repo , (str , github .Repository .Repository )), repo
501+ headers , data = self ._requester .requestJsonAndCheck (
502+ "DELETE" , f"{ self .url } /repos/{ github .Repository .Repository .as_url_param (repo )} "
503+ )
507504
508505 def _useAttributes (self , attributes : dict [str , Any ]) -> None :
509506 if "created_at" in attributes : # pragma no branch
0 commit comments