From 6dbbd811e2ec420cdb7b7ab53b035c956b21eb2d Mon Sep 17 00:00:00 2001 From: Manas Date: Jun 05 2019 13:50:34 +0000 Subject: taiga to user story conversion working 99% --- diff --git a/convert.py b/convert.py index b15f928..371b572 100644 --- a/convert.py +++ b/convert.py @@ -3,6 +3,8 @@ import requests import json import keyring import configparser +from tga import issues as tgaissue +from tga import userstory as tgauserstory config = configparser.ConfigParser() config.read('config.ini') @@ -25,22 +27,24 @@ with open('auth.txt', 'r') as a_file: """ # username = keyring.get_password(service_id, "username") +""" headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer {0}'.format(keyring.get_password(service_id, "taiga_token")) # 'Authorization': 'Bearer {0}'.format(str(123)) } print(headers) # debug only +""" def convert(args): for _, value in args._get_kwargs(): # iteratingover name space object for x in value: try: - print(headers) # Debug only - url = str(taiga_url) + "/api/v1/issues/by_ref?ref=" + str(x) + "&project=" + str(pid) + #print(headers) # Debug only + #url = str(taiga_url) + "/api/v1/issues/by_ref?ref=" + str(x) + "&project=" + str(pid) # debugurl = "https://api.taiga.io/api/v1/issues/by_ref" - print(url) # debug/dev env only + #print(url) # debug/dev env only # print(debugurl) # Debug only # ino = str(x) + '/' """ @@ -49,7 +53,7 @@ def convert(args): ('project', str(pid)), ) """ - r = tga.is_get(x) # gets the issue + r = tgaissue.issue_get(x) # gets the issue """ r = requests.get( url, @@ -61,10 +65,12 @@ def convert(args): # print("get object",r.json()) # Debug/Dev env only if r.status_code == 200: data = json.loads(r.content) - # print(data) + print(data) details = data['description'] subject = data['subject'] - id = data['id'] # fetch the id as well + issue_id = data['id'] # fetch the id as well + #print(issue_id) + print("Step 1") """ try: Because issue id is required to get custom attributes @@ -83,70 +89,94 @@ def convert(args): ) """ try: - r = issuecaget(id) - data = json.loads(r.content) - system_wide_change = data['attributes_values']['1'] - # rel-eng-ticket = data['attributes_values']['7'] # bug in taiga thus the later no - summary = data['attributes_values']['11372'] - bugzilla_id = data['attributes_values']['11373'] - approval_required = data['attributes_values']['11374'] - owners = data['attributes_values']['11375'] - contingency_deadline = data['attributes_values']['11376'] - mass_rebuild = data['attributes_values']['11377'] - policy_change = data['attributes_values']['11378'] - modifies_deliverables = data['attributes_values']['11379'] - system_wide_change = data['attributes_values']['11370'] - relengticket = data['attributes_values']['11371'] - - print(bugzilla_id) - print("Fetched Custom Attributes") - """ - Taiga api returns no's instead of the actual names/description - The below no's stand for changes tracker fesco,change-wrangler - 1 = System-wide change - 2 = Summary - 3 = Bugzilla id - 4 = Missing - 5 = Trademark approval required - 6 = Owners - 7 = Rel-eng ticket/Rel-end impact ticket - 11 = Contingencry deadline - 12 = Mass rebuild required - 13 = Policy change required - 14 = Modifies deliverables - """ - try: - payload = { - 'project': pid, - 'description': details, - 'subject': subject - } - r = tga.post_us(payload) - if r.status_code = 200: - data = json.loads(r.content) - id = data['id'] + r = tgaissue.issue_caget(issue_id) + if r.status_code == 200: + data = json.loads(r.content) + print(data, "step 2") + #system_wide_change = data['attributes_values']['1'] + # rel-eng-ticket = data['attributes_values']['7'] # bug in taiga thus the later no + summary = data['attributes_values']['11372'] + bugzilla_id = data['attributes_values']['11373'] + approval_required = data['attributes_values']['11374'] + #owners = data['attributes_values']['11375'] + contingency_deadline = data['attributes_values']['11376'] + mass_rebuild = data['attributes_values']['11377'] + policy_change = data['attributes_values']['11378'] + modifies_deliverables = data['attributes_values']['11379'] + system_wide_change = data['attributes_values']['11370'] + relengticket = data['attributes_values']['11371'] + #print("summary", summary) + #print(bugzilla_id) + print("Fetched Custom Attributes") + """ + Taiga api returns no's instead of the actual names/description + The below no's stand for changes tracker fesco,change-wrangler + 1 = System-wide change + 2 = Summary + 3 = Bugzilla id + 4 = Missing + 5 = Trademark approval required + 6 = Owners + 7 = Rel-eng ticket/Rel-end impact ticket + 11 = Contingencry deadline + 12 = Mass rebuild required + 13 = Policy change required + 14 = Modifies deliverables + """ + try: payload = { - ['TAIGA']['TEST_US_CA_SYSTEM_WIDE_CHANGE']:system_wide_change - ['TAIGA']['TEST_US_CA_SUMMARY']:summary - ['TAIGA']['TEST_US_CA_RELENG_TICKET']:relengticket - ['TAIGA']['TEST_US_CA_TRADEMARK_APPROVAL']:approval_required - ['TAIGA']['TEST_US_CA_OWNERS']:owners - ['TAIGA']['TEST_US_CA_FESCO_TICKET']:'random' - ['TAIGA']['TEST_US_CA_BUGZILLA_TRACKER']:'random' - ['TAIGA']['TEST_US_CA_BUGZILLA_CONTACT']:bugzilla_id - ['TAIGA']['TEST_US_CA_RELEASE_NOTES']:'random' - ['TAIGA']['TEST_US_CA_CONTINGENCY']:contingency_deadline - ['TAIGA']['TEST_US_CA_MASS_REBUILD']:mass_rebuild - ['TAIGA']['TEST_US_CA_POLICY_CHANGE']:policy_change - ['TAIGA']['TEST_US_CA_MODIFIES_DELIVERABLES']:modifies_deliverables + 'project': pid, + 'description': details, + 'subject': subject } - r = tga.post_us_ca(payload, id) - if r.status_code == 200: - print("Sucessfully converted issue to user story") + #print(payload) + r = tgauserstory.post_us(payload) + print(json.loads(r.content)) + #print(r.status_code) + if r.status_code == 201: + print("step 3") + data = json.loads(r.content) + id = data['id'] + print(id) + payload = { + "attributes_values": { + config['TAIGA']['TEST_US_CA_SYSTEM_WIDE_CHANGE']: system_wide_change, + config['TAIGA']['TEST_US_CA_SUMMARY']: summary, + config['TAIGA']['TEST_US_CA_RELENG_TICKET']: relengticket, + config['TAIGA']['TEST_US_CA_TRADEMARK_APPROVAL']: approval_required, + #config['TAIGA']['TEST_US_CA_OWNERS']: owners, + config['TAIGA']['TEST_US_CA_FESCO_TICKET']: 'random', + config['TAIGA']['TEST_US_CA_BUGZILLA_TRACKER']: 'random', + config['TAIGA']['TEST_US_CA_BUGZILLA_CONTACT']: bugzilla_id, + config['TAIGA']['TEST_US_CA_RELEASE_NOTES']: 'random', + config['TAIGA']['TEST_US_CA_CONTINGENCY']: contingency_deadline, + config['TAIGA']['TEST_US_CA_MASS_REBUILD']: mass_rebuild, + config['TAIGA']['TEST_US_CA_POLICY_CHANGE']: policy_change, + config['TAIGA']['TEST_US_CA_MODIFIES_DELIVERABLES']: modifies_deliverables + }, + "version": 1 + } + print(payload) + r = tgauserstory.post_usca(payload, id) + print(json.loads(r.content)) + print(r.status_code) + if r.status_code == 200: + print("Sucessfully converted issue to user story") + r = tgaissue.issue_close(issue_id) + print(r.status_code) + #print(json.loads(r.content)) + if r.status_code == 200: + print("Sucessfully closed issue") + else: + print("Unsuccesful at closing issue,check logs") + else: + print("Unsuccesful Conversion") else: print("Unsuccesful conversion") - except requests.exceptions.RequestException at e: - print(e) + except requests.exceptions.RequestException as e: + print(e) + else: + print("Unsuccesful Conversion") except requests.exceptions.RequestException as e: print("Failed to fetch attributes of the issue") print(e) @@ -157,10 +187,8 @@ def convert(args): 'subject': subject } """ - # print(payload) - - # print("post object") - + # print(payload) + # print("post object") """ r = requests.post( 'https://api.taiga.io/api/v1/userstories', @@ -168,7 +196,9 @@ def convert(args): headers=headers ) """ + else: + print("Unable to Convert Issue,Check logs and contact the developer", json.loads(r.content)) except Exception as e: print(e) - except requests.exceptions.RequestException at e: + except requests.exceptions.RequestException as e: print(e)