def _verify_base_url(self) -> None: response = self._request(requests.get, "/version") if response.status_code != 200: raise plug.ServiceNotFoundError( f"bad base url '{self._base_url}'", status=response.status_code ) plug.echo(f"Base url '{self._base_url}' OK")
def _try_api_request(ignore_statuses: Optional[Iterable[int]] = None): """Context manager for trying API requests. Args: ignore_statuses: One or more status codes to ignore (only applicable if the exception is a github.GithubException). Raises: plug.NotFoundError plug.BadCredentials plug.PlatformError plug.ServiceNotFoundError plug.UnexpectedException """ try: yield except plug.PlugError: raise except github.GithubException as e: if ignore_statuses and e.status in ignore_statuses: return if e.status == 404: raise plug.NotFoundError(str(e), status=404) elif e.status == 401: raise plug.BadCredentials( "credentials rejected, verify that token has correct access.", status=401, ) else: raise plug.PlatformError(str(e), status=e.status) except gaierror: raise plug.ServiceNotFoundError( "GitHub service could not be found, check the url" ) except Exception as e: raise plug.UnexpectedException( "a {} occured unexpectedly: {}".format(type(e).__name__, str(e)) )