docs: def get_access_token(self, installation_id, user_id=None):
          """
          Get an access token for the given installation id.
          POSTs https://api.github.com/app/installations/<installation_id>/access_tokens
          :param user_id: int
          :param installation_id: int
          :return: :class:`github.InstallationAuthorization.InstallationAuthorization`
          """
          body = {}
          if user_id:
              body = {"user_id": user_id}
          response = requests.post(
              "https://api.github.com/app/installations/{}/access_tokens".format(installation_id),
              headers={
                  "Authorization": "Bearer {}".format(self.create_jwt()),
                  "Accept": Consts.mediaTypeIntegrationPreview,
                  "User-Agent": "PyGithub/Python"
              },
              json=body
          )
  
          if response.status_code == 201:
              return InstallationAuthorization.InstallationAuthorization(
                  requester=None,  # not required, this is a NonCompletableGithubObject
                  headers={},  # not required, this is a NonCompletableGithubObject
                  attributes=response.json(),
                  completed=True
              )
          elif response.status_code == 403:
              raise GithubException.BadCredentialsException(
                  status=response.status_code,
                  data=response.text
              )
          elif response.status_code == 404:
              raise GithubException.UnknownObjectException(
                  status=response.status_code,
                  data=response.text
              )
          raise GithubException.GithubException(
              status=response.status_code,
              data=response.text
          )