#!/bin/bash jira_base_url="https://jira.someserver.com" username="usernName" password="passWord !@#" csv_file="components.csv" # Read the CSV file line by line while IFS='|' read -r project_key component_name user_id; do # Remove carriage return characters from the component_name component_name=$(echo "$component_name" | tr -d '\r') # Get the component ID from Jira API using project_key and component_name raw_data=$(curl -s -X GET \ -u "$username:$password" \ -H "Content-Type: application/json" \ "$jira_base_url/rest/api/2/project/$project_key/components") component_id=$(echo "$raw_data" | jq -r --arg component_name "$component_name" '.[] | select(.name == $component_name) | .id') echo "Updating project $project_key, component $component_name with new lead $user_id..." # Update the component lead using the component ID and user ID curl -s -X PUT \ -u "$username:$password" \ -H "Content-Type: application/json" \ -d "{\"leadUserName\":\"$user_id\", \"assigneeType\": \"COMPONENT_LEAD\"}" \ "$jira_base_url/rest/api/2/component/$component_id" > /dev/null # Output the updated information with a timestamp timestamp=$(date '+%Y-%m-%d %H:%M:%S') echo "Updated project $project_key, component $component_name with new lead $user_id at $timestamp" done < "$csv_file"