docs: def retrieve_public_key(user_repo):
      """Retrieve the public key from the Travis API.
  
      The Travis API response is accessed as JSON so that Travis-Encrypt
      can easily find the public key that is to be passed to cryptography's
      load_pem_public_key function. Due to issues with some public keys being
      returned from the Travis API as PKCS8 encoded, the key is returned with
      RSA removed from the header and footer.
  
      Parameters
      ----------
      user_repo: str
          the repository in the format of 'username/repository'
  
      Returns
      -------
      response: str
          the public RSA key of the username's repository
  
      Raises
      ------
      InvalidCredentialsError
          raised when an invalid 'username/repository' is given
      """
      url = 'https://api.travis-ci.org/repos/{}/key' .format(user_repo)
      response = requests.get(url)
  
      try:
          return response.json()['key'].replace(' RSA ', ' ')
      except KeyError:
          username, repository = user_repo.split('/')
          raise InvalidCredentialsError("Either the username: '{}' or the repository: '{}' does not exist. Please enter a valid username or repository name. The username and repository name are both case sensitive." .format(username, repository))