Sidehistorik
...
På alle Repeatable Tasks er felterne :
Erstattet af:
...
Make a custom Field
Make a custom field called "Cron Scheduling" - multiline. This will hold the scedules for the Issue:
Make the crontab script
Kodeblok |
---|
#!/bin/bash
IFS=$(echo -en "\n\b")
TransitionScript="/pack/jira-cron/jiraTransitionIssue.sh"
JIRAFilter="issuetype = \"Repeatable Task\" AND status in (Frozen) and \"Cron Scheduling\" IS NOT NULL"
FIELD="12821"
CHAR="'"
CRONTABUSER="jira"
rm /tmp/crontab 2> /dev/null
rm /tmp/value 2> /dev/null
echo " --------- " >>/pack/jira-cron/jiraMakeCrontab.log
issueList=`/pack/atlassian-cli/jira.sh --action getIssueList --search "$JIRAFilter" --outputFormat 200 | grep -v "issues" | grep -v "Created"`
for issue in $issueList
do
issueKey=`echo $issue | awk '{print $1}' | sed 's/,//g'`
CustomFieldValue=`/pack/atlassian-cli/jira.sh --action GetFieldValue --issue "$issueKey" --field "customfield_$FIELD" --file /tmp/value`
if [ -f /tmp/value ]
then
crontabEntry=`cat /tmp/value | sed 's/'"$CHAR"'//g'`
echo "#Crontabs for $issueKey" >> /tmp/crontab
for cronEntry in $crontabEntry
do
echo "$cronEntry $TransitionScript $issueKey >> /pack/jira-cron/jiraTransitionIssue.log 2>&1" >> /tmp/crontab
echo "Added: $cronEntry $TransitionScript $issueKey to /tmp/crontab" >> /pack/jira-cron/jiraMakeCrontab.log
done
echo "" >> /tmp/crontab
fi
rm /tmp/value 2> /dev/null
done
rm /tmp/value 2> /dev/null
#Replace JIRA Users crontab
su - jira -c "crontab /tmp/crontab" |
Make the Transition Script
Kodeblok |
---|
#!/bin/bash
# CLI Reference: https://bobswift.atlassian.net/wiki/display/JCLI/JIRA+Command+Line+Interface
IFS=$(echo -en "\n\b")
CHAR="'"
OKSTATUS="Frozen (10003)"
issueKey=$1
if [ $issueKey != '' ]
then
StatusFieldValue=`/pack/atlassian-cli/jira.sh --action GetFieldValue --issue "$issueKey" --field "Status" --file /tmp/value`
if [ -f /tmp/value ]
then
Status=`cat /tmp/value | sed 's/'"$CHAR"'//g'`
if [ $Status == $OKSTATUS ]
then
# Transition issue
/pack/atlassian-cli/jira.sh --action progressIssue --issue "$issueKey" --step "Initiate" >> /pack/jira-cron/jiraTransitionIssue.log 2>&1
else
echo "Issue $issueKey was not in $OKSTATUS State, but in $Status"
fi
fi
else
echo "No IssueKey as parameter"
fi |
Kodeblok |
---|
#Crontabs for NSP-513 * * 1 * * /pack/jira-cron/jiraTransitionIssue.sh NSP-513 >> /pack/jira-cron/jiraTransitionIssue.log 2>&1 #Crontabs for NIS-3846 0 5 2 * * /pack/jira-cron/jiraTransitionIssue.sh NIS-3846 >> /pack/jira-cron/jiraTransitionIssue.log 2>&1 #Crontabs for NIS-2933 0 0 1 * * /pack/jira-cron/jiraTransitionIssue.sh NIS-2933 >> /pack/jira-cron/jiraTransitionIssue.log 2>&1 #Crontabs for NIS-2467 0 5 5 * * /pack/jira-cron/jiraTransitionIssue.sh NIS-2467 >> /pack/jira-cron/jiraTransitionIssue.log 2>&1 |
...