docs: def provision(self,
                    bug: Bug,
                    *,
                    plugins: Optional[List[Tool]] = None
                    ) -> Container:
          """
          Provisions a container for a given bug.
          """
          if plugins is None:
              plugins = []
  
          logger.info("provisioning container for bug: %s", bug.name)
          endpoint = 'bugs/{}/provision'.format(bug.name)
          payload = {
              'plugins': [p.to_dict() for p in plugins]
          }  # type: Dict[str, Any]
          r = self.__api.post(endpoint, json=payload)
  
          if r.status_code == 200:
              container = Container.from_dict(r.json())
              logger.info("provisioned container (id: %s) for bug: %s",
                                 container.uid,
                                 bug.name)
              return container
  
          if r.status_code == 404:
              raise KeyError("no bug registered with given name: {}".format(bug.name))
  
          self.__api.handle_erroneous_response(r)