Is it possible to delete History records of an issue like the deletion of comments?

Dan Lohaus January 10, 2012

I am interested it there is a security setting that I missed or if a plugin exists for the deletion of History records under the Activities Area of the View Screen. I was hoping that it would ast similar to the deletion of Comments but I didn't see anything in the Permission Schemes.

The reason for having this capability is the possibility of entering data(either proprietary, classified, embarassing, insulting, etc.) in a field that shouldn't have been. I can edit the issue to change the value but the history still displays the Old Value.

Is going to the database directly my only choice?

Thanks in advance!

8 answers

1 accepted

2 votes
Answer accepted
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 11, 2012

No, you have to do this in the database. I've not seen any plugins that would solve the problem either.

Although I have done this a couple of times, it's been quite rare, but I've only really worked in media and financial fields, where the data, widely shared, was not particularly public. I imagine it could be a lot more important in public systems.

Dan Lohaus January 11, 2012

Thanks for the quick response; although I was hoping for a different one. Oh well, into the database I go.

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 11, 2012

Sorry, I should also have said - I wouldn't recommend deleting the changes. The way changes are logged is complex, you'd need to hit the tables changegroup and changeitem for each change, and then think about whether changegroup needs deleting and so on.

If you do want to delete bits of the history, I recommend that you only *update* changeitem. Replace or remove the sensitive stuff (on the odd times I've done this, I've said something like "senstive information removed by admins"). That saves you needing to think about changegroup, it's quicker and easier, and you won't end up with users saying "Hey, why isn't my change logged".

Also, if you do mess with SQL, the procedure is

  1. Stop Jira
  2. Get a backup of the database
  3. Test the backup is good
  4. Make your amendments
  5. Restart Jira
  6. Re-index it

The stop and start is *mandatory* or you could damage something quite badly. The backup isn't worth skipping. The re-index is very important because if someone put in "I hate windows" and you redacted that in the database, it'll remain searchable in the index, issue navigator, reports, downloads etc, until a reindex replaces it...

Like Caigos Atlassian Admin likes this
Dan Lohaus January 26, 2012

Thanks Nic! That's a great idea! I appreciate the help!

7 votes
r October 25, 2016

If you have script runner plugin you can run the following. replace ABC-1234 with your own issue key. Don't forget to test it in a test env first.

import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.component.ComponentAccessor
def issueManager = ComponentAccessor.getIssueManager()
Issue issue = issueManager.getIssueObject("ABC-1234")
def changeHistoryManager = ComponentAccessor.getChangeHistoryManager()
changeHistoryManager.removeAllChangeItems(issue)
Russell Bailey March 12, 2020

Very helpful

4 votes
Avinash Gautam May 11, 2018

Hi All,

 

Is it possible to hide History Tab for one project. I see the below code is been used for hiding specific issues

import com.atlassian.jira.component.ComponentAccessor
def issueManager = ComponentAccessor.getIssueManager()
Issue issue = issueManager.getIssueObject("ABC-1234")
def changeHistoryManager = ComponentAccessor.getChangeHistoryManager()
changeHistoryManager.removeAllChangeItems(issue)

 

Please let me know. Thanks!

--Avinash Gautam

Young.Zhao May 22, 2018

Hi Avinash,

Could you advise where to put thoes codes?

2 votes
Chris Stemen July 7, 2015

I ran into a similar situation (where the Tech Lead decided to grab everyone's attention by putting 1000 as the SP for a few stories).  Fortunately, that team had not moved those stories into a sprint (not sure why any team would put such an estimate into their sprints during planning to begin with), so I cloned the stories and then deleted the originals.  The cloning does not carry over the history as it starts its own thread.  After replacing the stories in the backlog, and deleting the old ones, the reporting went back to normal.

I would assume there might be some ramifications if the stories had been put in a sprint, but again - I doubt you would have done this considering the estimate.

Max Cascone October 16, 2017

This happened to me through a fat-finger where a story got changed to 1920 points. Now the burndown looks horrendous.

Like Brad Carson likes this
Juho Itä February 14, 2020

This was quick and easy fix, thank you!

Issue:
I pasted user/password combination by accident to a comment.

Fix:
1. Delete comment
2. Clone ticket (history isn't cloned to the new ticket)
3. Remove the original ticket



1 vote
Avinash Gautam May 24, 2018

Hi Young,

 

I am also looking for the same. I have tried my self but it is not working. We need to find how we can use the project object for HistoryManager class methods. Thanks!

 

--Avinash Gautam

Young.Zhao May 24, 2018

Hi Avinash,

If we expand the example, there is one for the whole project.

"jiraHelper.project?.key in ["YTP"]" (YTP is a project key), but it's not working for sure....

1 vote
Avinash Gautam May 22, 2018

Hi  Young,

 

You can use these in the scriptrunner plugin. Install in JIRA and then go to script Fragment section of the plugin.

 

Select the update history class/method and put this code. This code will work for only one issue. You can try to make it generic. PFA screenshots.

 

import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.component.ComponentAccessor
def issueManager = ComponentAccessor.getIssueManager()
Issue issue = issueManager.getIssueObject("ABC-1234")
def changeHistoryManager = ComponentAccessor.getChangeHistoryManager()
changeHistoryManager.removeAllChangeItems(issue)

 

SC1.png

Young.Zhao May 23, 2018

Hi Avinash,

Thanks for the prompt reply.

I tired as you told me, but I can't find "updatehistory" in "Hide What" field.

Capture.PNG

Could you advise that something I missed?

Thanks.

BR.

Young.Zhao May 23, 2018

I know the reason.

I need to install "Field Security" add-on

Young.Zhao May 23, 2018

Hi, Avinash

The code is to hide only one issue.

Could you advise how to hide the whole project?

0 votes
Fayaz Abdul April 5, 2019

Hello guys,

I found a plugin, it may useful to you.

"Issue history Item Remover"

Install this plugin in your find new apps.And you will get trash(bin symbol) on comments in history as shown below in red.
Screenshwithmodified.png 


Cheers,

Fayaz

Mikael Stenmark December 2, 2020

I can't find the app "Issue history Item Remover". Is it still available for cloud?

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
December 2, 2020

No, it's not available for Cloud.

To destroy the history, you need access to the internal java API, Cloud apps do not have that access.

0 votes
Young.Zhao May 22, 2018

Hey, I have the same problem.

We will have some PII changes in a field that will reflect on history.

For security concern, we would not like some agents to see PII info.

Appreciate someone can help with it instead of doing sth in DB.

Suggest an answer

Log in or Sign up to answer