Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import xlsxwriter
- name_and_version = "Jira Tool v1.0.2"
- print(name_and_version)
- # Personal Access Tokens
- auth_token='XXX'
- def calculate_remaining_student_number(student_number):
- url = f"https://jira.buas.nl/rest/api/latest/search?jql=assignee = \"{student_number}@buas.nl\" AND resolution = Unresolved AND type in (Sub-task, Task, Bug) AND sprint in openSprints()"
- hed = {'Authorization': 'Bearer ' + auth_token}
- response = requests.get(url, headers=hed)
- response_json = response.json()
- # check if there are issues found
- if len(response_json["issues"]) == 0:
- print("No matching issues found.")
- return -1
- sum_remaining_time = 0
- for issue in response_json["issues"]:
- timeoriginalestimate = -1
- try:
- timeoriginalestimate = int(issue["fields"]["timeoriginalestimate"])
- except Exception:
- timeoriginalestimate = 0
- timespent = -1
- try:
- timespent = int(issue["fields"]["timespent"])
- except Exception:
- timespent = 0
- sum_remaining_time += timeoriginalestimate - timespent
- key = issue["key"]
- print(f"{key} timeoriginalestimate is {timeoriginalestimate} - timespent is {timespent} remaining is {timeoriginalestimate - timespent}")
- if sum_remaining_time < 0:
- sum_remaining_time = 0
- display_name = student_number_to_display_name(student_number)
- print(f"Sum of remaining time for user {display_name} is {sum_remaining_time}.")
- return sum_remaining_time
- def student_number_to_display_name(student_number):
- url = f"http://jira.buas.nl/rest/api/2/user?username={student_number}@buas.nl"
- hed = {'Authorization': 'Bearer ' + auth_token}
- response = requests.get(url, headers=hed)
- response_json = response.json()
- return response_json["displayName"]
- # Init workbook
- workbook = xlsxwriter.Workbook('jira_tool.xlsx')
- worksheet = workbook.add_worksheet(name_and_version)
- # Studentnumbers order
- studentnumbers = open('studentnumbers.txt', 'r')
- studentnumbers_lines = studentnumbers.readlines()
- studentnumbers.close()
- # Header
- worksheet.set_column('A:A', 50)
- worksheet.set_column('B:B', 20)
- worksheet.set_column('C:C', 20)
- worksheet.write(0, 0, "student name")
- worksheet.write(0, 1, "student number")
- worksheet.write(0, 2, "remaining hours")
- # Writing
- col = 1
- for line in studentnumbers_lines:
- studentnumber = line.strip()
- value = calculate_remaining_student_number(studentnumber)
- if value > 0:
- value = value / 3600
- display_name = student_number_to_display_name(studentnumber)
- worksheet.write(col, 0, display_name)
- worksheet.write(col, 1, studentnumber)
- worksheet.write(col, 2, value)
- col+=1
- workbook.close()
- print("Done!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement