main.py (37 lines of code) (raw):

#!/usr/bin/env python3 from collections import namedtuple import os.path from project import Project from importer import Importer from labelcolourselector import LabelColourSelector from utils import read_xml_files file_names = os.getenv('JIRA_MIGRATION_FILE_PATHS') or input( 'Path to Jira XML query file (semi-colon separate for multiple files, directories are accepted): ') all_xml_files = read_xml_files(file_names) jira_proj = os.getenv('JIRA_MIGRATION_JIRA_PROJECT_NAME') or input('Jira project name: ') or 'INFRA' jira_done_id = os.getenv('JIRA_MIGRATION_JIRA_DONE_ID') or input('Jira Done statusCategory ID [default "3"]: ') or '3' jira_base_url = os.getenv('JIRA_MIGRATION_JIRA_URL') or input('Jira base url [default "https://issues.jenkins.io"]: ') or 'https://issues.jenkins.io' ac = os.getenv('JIRA_MIGRATION_GITHUB_NAME') or input('GitHub account name (user/org): ') or 'jenkins-infra' repo = os.getenv('JIRA_MIGRATION_GITHUB_REPO') or input('GitHub repository name: ') or 'helpdesk' pat = os.getenv('JIRA_MIGRATION_GITHUB_ACCESS_TOKEN') or input('Github Personal Access Token: ') # or '<your-github-pat>' start_from_issue = input('Start from [default "0" (beginning)]: ') or '0' Options = namedtuple("Options", "accesstoken account repo") opts = Options(accesstoken=pat, account=ac, repo=repo) project = Project(jira_proj, jira_done_id, jira_base_url) for f in all_xml_files: for item in f.channel.item: project.add_item(item) project.prettify() input('Press any key to begin...') ''' Steps: 1. Create any milestones 2. Create any labels 3. Create each issue with comments, linking them to milestones and labels 4: Post-process all comments to replace issue id placeholders with the real ones ''' importer = Importer(opts, project) colourSelector = LabelColourSelector(project) importer.import_milestones() if int(start_from_issue) == 0: importer.import_labels(colourSelector) importer.import_issues(int(start_from_issue)) # importer.post_process_comments()