def get_list_of_projects(): """ Gets a list of projects from FogBugz. Returns a list of project dictionary objects: [ { "project": project name, "owner" : project contact name, "email" : owner's email } ] """ try: fb = FogBugz(FB_URL, FB_TOKEN) except: return "Cannot connect" project_xml = fb.listProjects() projects = [] for project in project_xml.projects.childGenerator(): project_dict = {'project': project.sproject.text.encode('UTF-8'), # 'id': project.ixproject.text, 'owner': project.spersonowner.text, 'email': project.semail.text} projects.append(project_dict) return projects
from fogbugz import FogBugz import argparse fogbugz = FogBugz(fbSettings.URL) fogbugz.logon(fbSettings.Login, fbSettings.pw) parser = argparse.ArgumentParser( description="Usage: python milestone_maker -p <Project> -m <Milestone Name> -rm True|False (Default is false)" ) parser.add_argument("-p", "--project", type=str, help="Project Name", required=True) parser.add_argument("-m", "--milestone", type=str, help="New Milestone name", required=True) parser.add_argument("-rm", "--delete", type=bool, help="Delete the milestone", default=False, required=False) args = parser.parse_args() project_map = {} projects = fogbugz.listProjects() for item in projects.findAll("project"): proj_number = item.ixproject.string.encode("UTF-8") proj_name = item.sproject.string.encode("UTF-8") project_map.update({proj_name: proj_number}) milestone_map = {} milestones = fogbugz.listFixFors() for item in milestones.findAll("fixfor"): milestone_number = item.ixfixfor.string.encode("UTF-8") milestone_name = item.sfixfor.string.encode("UTF-8") milestone_map.update({milestone_name: milestone_number}) try: project_id = project_map[args.project] except KeyError: raise KeyError("Unknown Project Name. Project name must be case sensitive. ")