code: async def request(context, url, timeout=60, method='get', good=(200, ),
                    retry=tuple(range(500, 512)), return_type='text', **kwargs):
      
      session = context.session
      loggable_url = get_loggable_url(url)
      async with async_timeout.timeout(timeout):
          log.debug("{} {}".format(method.upper(), loggable_url))
          async with session.request(method, url, **kwargs) as resp:
              log.debug("Status {}".format(resp.status))
              message = "Bad status {}".format(resp.status)
              if resp.status in retry:
                  raise ScriptWorkerRetryException(message)
              if resp.status not in good:
                  raise ScriptWorkerException(message)
              if return_type == 'text':
                  return await resp.text()
              elif return_type == 'json':
                  return await resp.json()
              else:
                  return resp
docs: Async aiohttp request wrapper.
  
      Args:
          context (scriptworker.context.Context): the scriptworker context.
          url (str): the url to request
          timeout (int, optional): timeout after this many seconds. Default is 60.
          method (str, optional): The request method to use.  Default is 'get'.
          good (list, optional): the set of good status codes.  Default is (200, )
          retry (list, optional): the set of status codes that result in a retry.
              Default is tuple(range(500, 512)).
          return_type (str, optional): The type of value to return.  Takes
              'json' or 'text'; other values will return the response object.
              Default is text.
          **kwargs: the kwargs to send to the aiohttp request function.
  
      Returns:
          object: the response text() if return_type is 'text'; the response
              json() if return_type is 'json'; the aiohttp request response
              object otherwise.
  
      Raises:
          ScriptWorkerRetryException: if the status code is in the retry list.
          ScriptWorkerException: if the status code is not in the retry list or
              good list.