def METHOD_NAME(
    self, commit: git.Commit, possible_key_fingerprints: List[str]
) -> bool:
    """
    Check the validity of the commit signature
    and test if the signer is present in the provided list.
    (Commit without signature returns False.)
    """
    status = self.get_commit_signature_status(commit=commit)
    if status == CommitSignatureStatus.no_signature:
        logger.debug("Commit not signed.")
        return False
    if status == CommitSignatureStatus.cannot_be_checked:
        # We need to download keys before getting the signer
        for key in possible_key_fingerprints:
            self.download_gpg_key_if_needed(key_fingerprint=key)
    signer = self.get_commit_signer_fingerprint(commit)
    if not signer:
        logger.debug("Cannot get a signer of the commit.")
        return False
    if signer not in possible_key_fingerprints:
        logger.warning("Signature author not authorized.")
        return False
    is_valid = self.is_commit_signature_valid(commit)
    if not is_valid:
        logger.warning(f"Commit {commit.hexsha!r} signature is not valid.")
    return is_valid