@@ -8535,7 +8535,13 @@ def accept_access_request(
85358535
85368536 @validate_hf_hub_args
85378537 def reject_access_request (
8538- self , repo_id : str , user : str , * , repo_type : Optional [str ] = None , token : Union [bool , str , None ] = None
8538+ self ,
8539+ repo_id : str ,
8540+ user : str ,
8541+ * ,
8542+ repo_type : Optional [str ] = None ,
8543+ rejection_reason : Optional [str ],
8544+ token : Union [bool , str , None ] = None ,
85398545 ) -> None :
85408546 """
85418547 Reject an access request from a user for a given gated repo.
@@ -8554,6 +8560,8 @@ def reject_access_request(
85548560 repo_type (`str`, *optional*):
85558561 The type of the repo to reject access request for. Must be one of `model`, `dataset` or `space`.
85568562 Defaults to `model`.
8563+ rejection_reason (`str`, *optional*):
8564+ Optional rejection reason that will be sent to the user (max 200 characters).
85578565 token (Union[bool, str, None], optional):
85588566 A valid user access token (string). Defaults to the locally saved
85598567 token, which is the recommended method for authentication (see
@@ -8573,7 +8581,9 @@ def reject_access_request(
85738581 [`HTTPError`](https://requests.readthedocs.io/en/latest/api/#requests.HTTPError):
85748582 HTTP 404 if the user access request is already in the rejected list.
85758583 """
8576- self ._handle_access_request (repo_id , user , "rejected" , repo_type = repo_type , token = token )
8584+ self ._handle_access_request (
8585+ repo_id , user , "rejected" , repo_type = repo_type , rejection_reason = rejection_reason , token = token
8586+ )
85778587
85788588 @validate_hf_hub_args
85798589 def _handle_access_request (
@@ -8582,17 +8592,25 @@ def _handle_access_request(
85828592 user : str ,
85838593 status : Literal ["accepted" , "rejected" , "pending" ],
85848594 repo_type : Optional [str ] = None ,
8595+ rejection_reason : Optional [str ] = None ,
85858596 token : Union [bool , str , None ] = None ,
85868597 ) -> None :
85878598 if repo_type not in constants .REPO_TYPES :
85888599 raise ValueError (f"Invalid repo type, must be one of { constants .REPO_TYPES } " )
85898600 if repo_type is None :
85908601 repo_type = constants .REPO_TYPE_MODEL
85918602
8603+ payload = {"user" : user , "status" : status }
8604+
8605+ if rejection_reason is not None :
8606+ if status != "rejected" :
8607+ raise ValueError ("`rejection_reason` can only be passed when rejecting an access request." )
8608+ payload ["rejectionReason" ] = rejection_reason
8609+
85928610 response = get_session ().post (
85938611 f"{ constants .ENDPOINT } /api/{ repo_type } s/{ repo_id } /user-access-request/handle" ,
85948612 headers = self ._build_hf_headers (token = token ),
8595- json = { "user" : user , "status" : status } ,
8613+ json = payload ,
85968614 )
85978615 hf_raise_for_status (response )
85988616
0 commit comments