Skip to content

Jira:Application Links:Rebuild Application Links after import

lbonanomi edited this page Jul 1, 2025 · 2 revisions
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