Ejemplo n.º 1
0
 def get(self, endpoint):
     """
     Perform GET GitHub REST request
     """
     url = self._get_url(endpoint)
     LOGGER.debug("GET %s", url)
     return http_call("get", url, headers=_get_headers())
Ejemplo n.º 2
0
def http_call(method, url, **kwargs):
    """
    Perform HTTP call

    - Check status code
    - Check JSON validity
    - Return reponse content as a dict
    """
    try:
        response = requests.request(method, url, **kwargs)
        if response:
            LOGGER.info("Response: %s", response.status_code)
        else:
            LOGGER.info("Response: %s",
                        dump.dump_all(response).decode("utf-8"))
    except requests.RequestException as exception:
        LOGGER.error(str(exception))
        raise click.ClickException(str(exception))

    LOGGER.debug(response.content[:500])
    if response.status_code == 200:
        try:
            return response.json()
        except Exception as exception:
            LOGGER.error(str(exception))
            raise click.ClickException(response.text)
    elif response.status_code == 400:
        raise click.ClickException("Bad request")
    elif response.status_code == 401:
        raise click.ClickException("Unauthorized")
    elif response.status_code == 500:
        raise click.ClickException("Internal server error")
    else:
        raise click.ClickException(response.text)
Ejemplo n.º 3
0
 def post(self, endpoint, payload):
     """
     Perform POST Slack REST request
     """
     url = _get_slack_url(endpoint)
     LOGGER.debug("POST %s", url)
     LOGGER.debug(payload)
     return http_call("post", url, data=payload)
Ejemplo n.º 4
0
 def get(self, endpoint, params):
     """
     Perform GET Slack REST request
     """
     settings = Settings()
     url = _get_slack_url(endpoint)
     LOGGER.debug("GET %s", url)
     params.append(("token", settings.get_slack_token()))
     return http_call("get", url, headers=_get_headers(), params=params)
Ejemplo n.º 5
0
 def get(self, query):
     """
     Perform GET GitHub GraphQL request
     """
     payload = json.dumps({"query": query})
     LOGGER.debug(payload)
     return http_call("post",
                      self.url,
                      headers=_get_headers(),
                      data=payload)
Ejemplo n.º 6
0
 def get(self, endpoint):
     """
     Perform GET GitHub REST request
     """
     url = self._get_url(endpoint)
     LOGGER.debug("GET %s", url)
     response = _http_call("get", url, headers=_get_headers())
     LOGGER.debug(response.json())
     if response.status_code == 200:
         try:
             return response.json()
         except Exception as exception:
             LOGGER.error(str(exception))
             raise click.ClickException(response.text)
     elif response.status_code == 400:
         raise click.ClickException("Bad request")
     elif response.status_code == 401:
         raise click.ClickException("Unauthorized")
     else:
         raise click.ClickException(response.text)
Ejemplo n.º 7
0
 def get(self, query):
     """
     Perform GET GitHub GraphQL request
     """
     payload = json.dumps({"query": query})
     LOGGER.debug(payload)
     response = _http_call("post", self.url, headers=_get_headers(), data=payload)
     LOGGER.debug(response.content[:500])
     if response.status_code == 200:
         try:
             return response.json()
         except Exception as exception:
             LOGGER.error(str(exception))
             raise click.ClickException(response.text)
     elif response.status_code == 400:
         raise click.ClickException("Bad request")
     elif response.status_code == 401:
         raise click.ClickException("Unauthorized")
     else:
         raise click.ClickException(response.text)