Пример #1
0
def unmangle(obj, package):
    issue_migration = {
        "assignee": "owner",
        "labels": "tags",
        "user": "******"
    }
    for mig in issue_migration:
        obj[issue_migration[mig]] = obj[mig]
        del(obj[mig])
    obj['_id'] = create_id(
        PREFIX,
        "bug",
        package,
        obj['number']
    )
    return obj
Пример #2
0
    def _import_bugs(self, *args):
        bugs = server.get_bugs(*args)
        # print args, bugs
        objs = server.get_status(bugs)
        objs = objs['item']

        for bug in objs:
            bug = bug['value']
            tags = bug['tags'].split()

            log = server.get_bug_log(bug['bug_num'])
            body = log[0]['body'].decode("utf-8", 'ignore')

            tags = [{'name': x} for x in tags]
            bugobj = {
                "_id": create_id(
                    PREFIX,
                    "bug",
                    self._package,
                    bug['bug_num']
                ),
                "tags": tags,
                "body": body,
                "title": bug['subject'],
                "opened_at": dt.datetime.fromtimestamp(bug['date']),
                "updated_at": dt.datetime.fromtimestamp(bug['last_modified']),
                "closed_at": None if bug['done'] == "" \
                    else dt.datetime.fromtimestamp(bug['last_modified']),
                    # XXX: Dear jesus, fix the stuff above.
                "html_url": "http://bugs.debian.org/%s" % (bug['bug_num']),
                "owner": {
                    "login": bug['owner'] if bug['owner'] != "" else None
                },
                "reporter": {
                    "login": bug['originator']
                },
                "state": "closed" if bug['done'] != "" else "open"
            }
            self.save_bug(bugobj)