Skip to end of banner
Go to start of banner

Automatically archive old projects

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Problem

Leaving old projects in Jira can actually negatively impact search performance, cause users to mistakenly view the wrong issue, and contribute to an overabundance of objects such as custom fields, workflows, and schemes in the Jira admin configurations.

Solution

Create a SIL script that is scheduled to run periodically that will check the modified date of all the issues in the project. If no issues have been modified in the past six months the project will be archived.

Script

//loop through all projects
for(string pkey in allProjects()) {
    JProject proj = admProjectProperties(pkey); //get more info about the project
    string projectDisplayName = proj.name + " (" + proj.key + ")"; //make it look pretty
    //number of issues in that project have been modified in the last 6 months
    int issueCount = countIssues("project = " + pkey + " AND updated > startOfDay(-180)");
    //if no issues have been updated in the last 6 months
    if(issueCount < 1) {
        //display message
        runnerLog("<span style='font-style: italic; color: red'>Archiving</span> project <strong>" + projectDisplayName + "</strong> because it has not been updated in the last six months.", true);
        admArchiveProject(pkey); //archive entire project
    } else {
        //number of issues in that project have been modified in the last 3 months
        issueCount = countIssues("project = " + pkey + " AND updated > startOfDay(-90)");
        //if no issues have been updated in the last 3 months
        if(issueCount < 1) {
            //create message to display
            string msg = "Project <strong>" + projectDisplayName + "</strong> has not been updated in the past 3 months. " +
                "Sending <span style='font-style: italic; color: green'>notification</span> to " + userFullName(proj.lead); 
            runnerLog(msg, true); //display message
            //create the email body
            string body =  projectDisplayName + " has not be updated in the past 3 month. If no updates are made within the next couple of months " +
                "then this project is at risk for getting automatically archived!";
            sendEmail(userEmailAddress(proj.lead), {}, projectDisplayName + "is getting dusty", body); //send email
        }
    }
}
  • No labels