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