def import_issue_with_comments()

in migration/src/import_github_issues.py [0:0]


def import_issue_with_comments(num: int, data_dir: Path, token: str, repo: str) -> Optional[tuple[str, str]]:
    data_file = github_data_file(data_dir, num)
    if not data_file.exists():
        return None
    with open(data_file) as fp:
        issue_data = json.load(fp)
        assignee = issue_data["issue"].get("assignee")
        if assignee and not check_if_can_be_assigned(token, repo, assignee, logger):
            # this field should be removed; otherwise an error occurs.
            del issue_data["issue"]["assignee"]
        url = import_issue(token, repo, issue_data, logger)
        (status, issue_url, errors) = ("pending", "", [])
        while not status or status == "pending":
            (status, issue_url, errors) = get_import_status(token, url, logger)
            time.sleep(3)
        if status == "imported":
            issue_number = issue_url.rsplit("/", maxsplit=1)[1]
            web_url = issue_web_url(repo, issue_number)
            logger.debug(f"Import GitHub issue {web_url} was successfully completed.")
            return (web_url, issue_number)
        else:
            logger.error(f"Import GitHub issue {data_file} was failed. status={status}, errors={errors}")
        
        raise RuntimeError("Importing issue failed")