def METHOD_NAME(self, matches):
    # Build TheHive alert object, starting with some defaults, updating with any
    # user-specified config
    alert_config = {
        'artifacts': [],
        'customFields': {},
        'date': int(time.time()) * 1000,
        'description': self.create_alert_body(matches),
        'sourceRef': str(uuid.uuid4()),
        'tags': [],
        'title': self.create_title(matches),
    }
    alert_config.update(self.rule.get('hive_alert_config', {}))
    # Iterate through each match found, populating the alert tags and observables as required
    tags = set()
    artifacts = []
    for match in matches:
        artifacts = artifacts + self.load_observable_artifacts(match)
        tags.update(self.load_tags(alert_config['tags'], match))
    alert_config['artifacts'] = artifacts
    alert_config['tags'] = list(tags)
    # Populate the customFields
    if len(matches) > 0:
        #Populate dynamic fields
        alert_config['customFields'] = self.load_custom_fields(alert_config['customFields'], matches[0])
        alert_config['description']=self.load_args("description", alert_config['description'], matches[0])
        if 'description_args' in alert_config:
            del alert_config['description_args']
        alert_config["title"] = self.load_args("title", alert_config["title"], matches[0])
        if 'title_args' in alert_config:
            del alert_config['title_args']
        alert_config["type"] = self.load_args("type", alert_config["type"], matches[0])
        if 'type_args' in alert_config:
            del alert_config['type_args']
        alert_config["source"] = self.load_args("source", alert_config["source"], matches[0])
        if 'source_args' in alert_config:
            del alert_config['source_args']            
    # POST the alert to TheHive
    connection_details = self.rule['hive_connection']
    api_key = connection_details.get('hive_apikey', '')
    hive_host = connection_details.get('hive_host', 'http://localhost')
    hive_port = connection_details.get('hive_port', 9000)
    proxies = connection_details.get('hive_proxies', {'http': '', 'https': ''})
    verify = connection_details.get('hive_verify', False)
    alert_body = json.dumps(alert_config, indent=4, sort_keys=True)
    req = f'{hive_host}:{hive_port}/api/alert'
    headers = {'Content-Type': 'application/json',
               'Authorization': f'Bearer {api_key}'}
    try:
        response = requests.post(req,
                                 headers=headers,
                                 data=alert_body,
                                 proxies=proxies,
                                 verify=verify)
        response.raise_for_status()
    except RequestException as e:
        raise EAException(f"Error posting to TheHive: {e}")
    elastalert_logger.info("Alert sent to TheHive")