Skip to content

Jira:Application Links:Rebuild Application Links after import

lbonanomi edited this page Feb 15, 2025 · 1 revision

THIS=$1

Get issues relationships

curl -ns https://jira.server.com/rest/api/latest/issue/$THIS/remotelink | jq '.[] | "(.id)@(.object.url)@(.relationship)"' | tr -d '"' | while read LINE do

    NEWURL=$(echo $LINE | awk -F"@" '{ print $2 }' | awk -F"/" '{ print $5 }')
    RELATE=$(echo $LINE | awk -F"@" '{ print $3 }')

    RLBL=$(curl -ns https://jira.server.com/rest/api/2/issueLinkType | jq '.issueLinkTypes[] | "\(.name)@\(.inward)@\(.outward)"' | tr -d '"' | awk -F"@" '/'"$RELATE"'/ {print $1}')
    IN=$(curl -ns https://jira.server.com/rest/api/2/issueLinkType | jq '.issueLinkTypes[] | "\(.name)@\(.inward)@\(.outward)"' | tr -d '"' | awk -F"@" '/'"$RELATE"'/ {print $2}' | tail -1)
    OUT=$(curl -ns https://jira.server.com/rest/api/2/issueLinkType | jq '.issueLinkTypes[] | "\(.name)@\(.inward)@\(.outward)"' | tr -d '"' | awk -F"@" '/'"$RELATE"'/ {print $3}' | tail -1)

            echo $RELATE
            echo "IN:"$IN
            echo "OUT:"$OUT

    if [[ "$RELATE" == "$IN" ]]
    then
            echo curl -ns -X POST -H \'Content-Type: application/json\' -d \'{ \"type\": { \"name\": \"$RLBL\" }, \"outwardIssue\": { \"key\":\"$THIS\"}, \"inwardIssue\": { \"key\":\"$NEWURL\" }}\' https://jira.server.com/rest/api/latest/issueLink | bash
    elif [[ "$RELATE" == "$OUT" ]]
    then
            echo curl -ns -X POST -H \'Content-Type: application/json\' -d \'{ \"type\": { \"name\": \"$RLBL\" }, \"inwardIssue\": { \"key\":\"$THIS\"}, \"outwardIssue\": { \"key\":\"$NEWURL\" }}\' https://jira.server.com/rest/api/latest/issueLink | bash
    fi

    # DELETE OLD LINK
    JUNK=$(curl -ns https://jira.server.com/rest/api/latest/issue/$THIS/remotelink | jq .[].self)
    echo "DELETE $JUNK" >> /var/tmp/delete_these_links

done

Clone this wiki locally