docs: def list_projects(self, tags=None, pattern=None, username=None, owner=None,
                        namespace=None, fork=None, short=None, page=None,
                        per_page=None):
          """
          Lisk all projects on this Pagure instance.
          :param tags: filters the tags of the project
          :param pattern: filters the projects by the pattern string
          :param username: filters the username of the project administrators
          :param owner: filters the projects by ownership
          :param namespace: filters the projects by namespace
          :param fork: filters whether it is a fork (True) or not (False)
          :param short: whether to return the entrie JSON or just a sub-set
          :param page: specifies that pagination should be turned on and that
              this specific page should be displayed
          :param per_page: the number of projects to return per page.
              The maximum is 100
          :return:
          """
          request_url = "{}/api/0/projects".format(self.instance)
  
          payload = {}
          if tags is not None:
              payload['tags'] = tags
          if pattern is not None:
              payload['pattern'] = pattern
          if username is not None:
              payload['username'] = username
          if owner is not None:
              payload['owner'] = owner
          if namespace is not None:
              payload['namespace'] = namespace
          if fork is not None:
              payload['fork'] = fork
          if short is not None:
              payload['short'] = short
          if page is not None:
              payload['page'] = str(page)
          if per_page is not None:
              payload['per_page'] = str(per_page)
  
          return_value = self._call_api(request_url, params=payload)
  
          return return_value['projects']