changeset 4:38324ef9b854

Rename the script
author Radomir Dopieralski <devel@sheep.art.pl>
date Sun, 07 Oct 2012 12:39:10 +0000
parents ed543297d759
children fbf8cfcd575d
files bbbug.py trac2bb.py
diffstat 2 files changed, 128 insertions(+), 128 deletions(-) [+]
line wrap: on
line diff
--- a/bbbug.py	Sun Oct 07 12:37:02 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-import csv
-import requests
-import json
-import sqlite3
-import datetime
-
-
-BASE_URL = 'https://api.bitbucket.org/1.0'
-AUTH = ('USERNAME', 'PASSWORD')
-REPO = 'USERNAME/REPOSITORY'
-TYPES = {
-    'defect': 'bug',
-    'enhancement': 'enhancement',
-    'discussion': 'proposal',
-    'note': 'proposal',
-    'task': 'task',
-}
-STATUSES = {
-    'new': 'new',
-    'accepted': 'open',
-    'reopened': 'open',
-    'closed': 'resolved',
-
-    'worksforme': 'wontfix',
-    'invalid': 'invalid',
-    'duplicate': 'duplicate',
-    'wontfix': 'wontfix',
-    'fixed': 'resolved',
-    '': None,
-    '--': None,
-    None: None,
-}
-PRIORITIES = {
-    None: None,
-    '--': None,
-    'High': 'major',
-    'Normal': 'minor',
-    'Low': 'trivial',
-}
-
-
-def create_issue(**kwargs):
-    url = '/'.join([BASE_URL, 'repositories', REPO, 'issues'])
-    response = requests.post(url, auth=AUTH, data=kwargs)
-    print response.content
-    return json.loads(response.content)['local_id']
-
-
-def get_cmv(what):
-    url = '/'.join([BASE_URL, 'repositories', REPO, 'issues', what])
-    response = requests.get(url, auth=AUTH)
-    for info in json.loads(response.content):
-        yield info['name']
-
-
-def create_cmv(what, name):
-    url = '/'.join([BASE_URL, 'repositories', REPO, 'issues', what])
-    response = requests.post(url, auth=AUTH, data={'name': name})
-
-
-def create_comment(issue_id, text):
-    url = '/'.join([BASE_URL, 'repositories', REPO, 'issues', str(issue_id), 'comments'])
-    response = requests.post(url, auth=AUTH, data={'content': text})
-    print response.content
-
-
-def import_issue(summary, status, type_, priority, milestone, component, version, resolution, description, cmv):
-    if component not in cmv['components']:
-        create_cmv('components', component)
-        cmv['components'].add(component)
-    if milestone not in cmv['milestones']:
-        create_cmv('milestones', milestone)
-        cmv['milestones'].add(milestone)
-    if version not in cmv['versions']:
-        create_cmv('versions', version)
-        cmv['versions'].add(version)
-    issue = {
-        'status': STATUSES[resolution] or STATUSES[status],
-        'priority': PRIORITIES[priority],
-        'title': summary,
-        'content': description,
-        'kind': TYPES[type_],
-        'component': component,
-        'milestone': milestone,
-        'version': version,
-        'responsible': None,
-    }
-    return create_issue(**issue)
-
-
-def import_issues_csv(filename):
-    cmv = {}
-    for what in ('components', 'milestones', 'versions'):
-        cmv[what]  = set(get_cmv(what))
-    with open(filename) as f:
-        for (id_, summary, status, owner, type_, priority, milestone,
-             component, version, resolution, time, changetime, reporter,
-             keywords, cc, description) in csv.reader(f):
-            if id_ == 'id':
-                continue
-            import_issue(summary, status, type_, priority,
-                         milestone, component, version, resolution,
-                         description, cmv)
-
-
-def import_issues_db(filename):
-    cmv = {}
-    for what in ('components', 'milestones', 'versions'):
-        cmv[what]  = set(get_cmv(what))
-    db = sqlite3.connect(filename)
-    for (id_, summary, status, type_, priority, milestone, component,
-         version, resolution, description) in db.execute(
-            "SELECT id, summary, status, type, priority, milestone, "
-            "component, version, resolution, description FROM ticket"):
-            issue_id = import_issue(summary, status, type_, priority,
-                         milestone, component, version, resolution,
-                         description, cmv)
-            for comment, author, time_ in db.execute(
-                "SELECT newvalue, author, time FROM ticket_change WHERE "
-                "ticket=? AND field='comment' ORDER BY oldvalue", (id_,)):
-                if not comment:
-                    continue
-                when = datetime.datetime.utcfromtimestamp(time_/1000000)
-                text = u'%s on %s said:\n\n%s' % (author, when, comment)
-                create_comment(issue_id, text)
-
-
-import_issues_db('trac.db')
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/trac2bb.py	Sun Oct 07 12:39:10 2012 +0000
@@ -0,0 +1,128 @@
+import csv
+import requests
+import json
+import sqlite3
+import datetime
+
+
+BASE_URL = 'https://api.bitbucket.org/1.0'
+AUTH = ('USERNAME', 'PASSWORD')
+REPO = 'USERNAME/REPOSITORY'
+TYPES = {
+    'defect': 'bug',
+    'enhancement': 'enhancement',
+    'discussion': 'proposal',
+    'note': 'proposal',
+    'task': 'task',
+}
+STATUSES = {
+    'new': 'new',
+    'accepted': 'open',
+    'reopened': 'open',
+    'closed': 'resolved',
+
+    'worksforme': 'wontfix',
+    'invalid': 'invalid',
+    'duplicate': 'duplicate',
+    'wontfix': 'wontfix',
+    'fixed': 'resolved',
+    '': None,
+    '--': None,
+    None: None,
+}
+PRIORITIES = {
+    None: None,
+    '--': None,
+    'High': 'major',
+    'Normal': 'minor',
+    'Low': 'trivial',
+}
+
+
+def create_issue(**kwargs):
+    url = '/'.join([BASE_URL, 'repositories', REPO, 'issues'])
+    response = requests.post(url, auth=AUTH, data=kwargs)
+    print response.content
+    return json.loads(response.content)['local_id']
+
+
+def get_cmv(what):
+    url = '/'.join([BASE_URL, 'repositories', REPO, 'issues', what])
+    response = requests.get(url, auth=AUTH)
+    for info in json.loads(response.content):
+        yield info['name']
+
+
+def create_cmv(what, name):
+    url = '/'.join([BASE_URL, 'repositories', REPO, 'issues', what])
+    response = requests.post(url, auth=AUTH, data={'name': name})
+
+
+def create_comment(issue_id, text):
+    url = '/'.join([BASE_URL, 'repositories', REPO, 'issues', str(issue_id), 'comments'])
+    response = requests.post(url, auth=AUTH, data={'content': text})
+    print response.content
+
+
+def import_issue(summary, status, type_, priority, milestone, component, version, resolution, description, cmv):
+    if component not in cmv['components']:
+        create_cmv('components', component)
+        cmv['components'].add(component)
+    if milestone not in cmv['milestones']:
+        create_cmv('milestones', milestone)
+        cmv['milestones'].add(milestone)
+    if version not in cmv['versions']:
+        create_cmv('versions', version)
+        cmv['versions'].add(version)
+    issue = {
+        'status': STATUSES[resolution] or STATUSES[status],
+        'priority': PRIORITIES[priority],
+        'title': summary,
+        'content': description,
+        'kind': TYPES[type_],
+        'component': component,
+        'milestone': milestone,
+        'version': version,
+        'responsible': None,
+    }
+    return create_issue(**issue)
+
+
+def import_issues_csv(filename):
+    cmv = {}
+    for what in ('components', 'milestones', 'versions'):
+        cmv[what]  = set(get_cmv(what))
+    with open(filename) as f:
+        for (id_, summary, status, owner, type_, priority, milestone,
+             component, version, resolution, time, changetime, reporter,
+             keywords, cc, description) in csv.reader(f):
+            if id_ == 'id':
+                continue
+            import_issue(summary, status, type_, priority,
+                         milestone, component, version, resolution,
+                         description, cmv)
+
+
+def import_issues_db(filename):
+    cmv = {}
+    for what in ('components', 'milestones', 'versions'):
+        cmv[what]  = set(get_cmv(what))
+    db = sqlite3.connect(filename)
+    for (id_, summary, status, type_, priority, milestone, component,
+         version, resolution, description) in db.execute(
+            "SELECT id, summary, status, type, priority, milestone, "
+            "component, version, resolution, description FROM ticket"):
+            issue_id = import_issue(summary, status, type_, priority,
+                         milestone, component, version, resolution,
+                         description, cmv)
+            for comment, author, time_ in db.execute(
+                "SELECT newvalue, author, time FROM ticket_change WHERE "
+                "ticket=? AND field='comment' ORDER BY oldvalue", (id_,)):
+                if not comment:
+                    continue
+                when = datetime.datetime.utcfromtimestamp(time_/1000000)
+                text = u'%s on %s said:\n\n%s' % (author, when, comment)
+                create_comment(issue_id, text)
+
+
+import_issues_db('trac.db')