Hello All!
Upgrading a large Jira Data Center instance is no easy task. One of the main steps of this process is communicating to project leads about this. When there are hundreds of Jira projects in your instance, it can be tedious to manually find the email address of each project lead. In this blog I will share how I exported all Jira project lead email addresses into a csv file using Jira REST API and Python.
This solution was tested on Jira Data Center version 8.x, Python3 and Windows 11. Let's see how we can get this email list in 3 easy steps.
Note: I assume that you have Python setup in your environment where you will run the script in Step 3 and you know how to run a python script. Also, that you have access to all Jira projects in the instance because REST API will only return data from projects where you have access.
Step 1: Login to your Jira instance. Go to the url https://your.instance.domain/rest/api/2/project?expand=lead. This url will return all projects in your instance in JSON format.
Step 2: Copy the entire JSON response returned on your screen and save this to a text file named "projects.txt".
Step 3 : Copy the below code and save this into a ".py" file (ex: export_leads.py). Then place the file created in Step 2 (projects.txt) in the same folder as the ".py" file. Finally run the python script.
import csv, json
input_file = open('projects.txt')
json_object = json.load(input_file)
json_array = json_object
email_list = []
list_of_leads = []
for item in json_array:
project_details = {"Lead":None,"Name":None}
project_lead = item['lead']['name']
list_of_leads.append(project_lead)
project_details['Lead'] = project_lead
email_list.append(project_details)
# Get unique number of leads
lead_set = set(list_of_leads)
print("Total leads count: "+str(len(list_of_leads)))
print("Unique leads count: "+str(len(lead_set)))
# Data to be written row-wise in csv file
dict_data = email_list
csv_columns = ['Lead', 'Name']
csv_file = "leads_email_list.csv"
try:
with open(csv_file, 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
writer.writeheader()
for data in dict_data:
writer.writerow(data)
except IOError:
print("I/O error")
This script will generate a CSV file with email addresses of all project leads which then you can copy and paste into your email to start communicating with them.
Thanks for taking your time to read this post. Hope this will help you !
Comments
Post a Comment