code: async def populate_projects(self, force=False):
          
          if force or not self.projects:
              with tempfile.TemporaryDirectory() as tmpdirname:
                  self.projects = await load_json_or_yaml_from_url(
                      self, self.config['project_configuration_url'],
                      os.path.join(tmpdirname, 'projects.yml')
                  )
docs: Download the ``projects.yml`` file and populate ``self.projects``.
  
          This only sets it once, unless ``force`` is set.
  
          Args:
              force (bool, optional): Re-run the download, even if ``self.projects``
                  is already defined. Defaults to False.