docs: def publishItems(self, items_info):
          """Publishes a list of items.
          
          Args:
              items_info (list): A list of JSON configuration items to publish.
          
          Returns:
              list: A list of results from :py:meth:`arcrest.manageorg._content.User.addItem`.
              
          """
          if self.securityhandler is None:
              print ("Security handler required")
              return
          itemInfo = None
          item_results = None
          item_info = None
          admin = None
          try:
              admin = arcrest.manageorg.Administration(securityHandler=self._securityHandler)
              item_results = []
              for item_info in items_info:
                  if 'ReplaceTag' in item_info:
  
                      itemInfo = {"ReplaceTag":item_info['ReplaceTag'] }
                  else:
                      itemInfo = {"ReplaceTag":"{FeatureService}" }
  
                  itemInfo['ItemInfo']  = self._publishItems(config=item_info)
  
                  if itemInfo['ItemInfo'] is not None and 'name' in itemInfo['ItemInfo']:
                      print ("%s created" % itemInfo['ItemInfo']['name'])
                      item_results.append(itemInfo)
                  else:
                      print (str(itemInfo['ItemInfo']))
  
              return item_results
  
          except common.ArcRestHelperError as e:
              raise e
          except Exception as e:
  
              line, filename, synerror = trace()
              raise common.ArcRestHelperError({
                  "function": "publishItems",
                  "line": line,
                  "filename":  filename,
                  "synerror": synerror,
              })
          finally:
              itemInfo = None
              item_results = None
              item_info = None
              admin = None
  
              del itemInfo
              del item_results
              del item_info
              del admin
  
              gc.collect()