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")