Пример #1
0
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
Пример #2
0
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. ")