def METHOD_NAME(self) -> None:
    for saas_file in self._saas_files:
        for resource_template in saas_file.resource_templates:
            for target in resource_template.targets:
                if not target.promotion:
                    continue
                auth_code = (
                    saas_file.authentication.code
                    if saas_file.authentication
                    else None
                )
                publisher = Publisher(
                    ref=target.ref,
                    uid=target.uid(
                        parent_saas_file_name=saas_file.name,
                        parent_resource_template_name=resource_template.name,
                    ),
                    repo_url=resource_template.url,
                    auth_code=auth_code,
                )
                has_subscriber = False
                for publish_channel in target.promotion.publish or []:
                    if publish_channel not in self._channels_by_name:
                        continue
                    has_subscriber = True
                    publisher.channels.add(
                        self._channels_by_name[publish_channel].name
                    )
                    self._channels_by_name[publish_channel].publishers.append(
                        publisher
                    )
                if has_subscriber:
                    self.publishers.append(publisher)