Dear Community,
I am scratching my head about something:
I am looking for all filters to find outdated onces. I tried 2 approaches:
1. SQL (table searchrequest)
2. Java API (via SearchRequestManager)
The issue I am facing:
Both methods return for filter A an author (aka owner, right?) B.
BUT: the Jira UI lists the same filter A with an owner of C! (confirmed by matching filter ID, filter name, and JQL)
Given a SearchRequest ID, how do I get the actual / current / "correct" owner of that filter?
Is SearchRequest the wrong DB table / API to look for filters? I used the the DB Schema of Jira DC 9 from Atlassian's documentation (https://dac-static.atlassian.com/server/jira/platform/attachments/jira_9.0_database_schema.pdf), since we are running Jira DC 9.12.15.
Thx,
Janek
for reference:
Java / Groovy:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.search.SearchRequest
import com.atlassian.jira.issue.search.SearchRequestEntity
import com.atlassian.jira.issue.search.SearchRequestManager
import com.atlassian.jira.util.Visitor
import org.apache.log4j.Level
log.setLevel(Level.INFO);
ComponentAccessor.getComponent(SearchRequestManager).visitAll(new Visitor<SearchRequestEntity>() {
@Override
void visit(SearchRequestEntity searchRequestEntity) {
if (searchRequestEntity.getId() != 16959)
return;
log.info("""
Filter ID: ${searchRequestEntity.getId()}
Author: ${searchRequestEntity.getAuthor()}
JQL: ${searchRequestEntity.getRequest()}
""");
}
});
result:
Filter ID: 16959
Author: B
JQL: ...
MS SQL:
SELECT
filter.ID as filter_ID,
filter.username as filter_UserName,
filter.authorname as filter_AuthorName
FROM
jiraschema.searchrequest filter
WHERE
filter.ID = 16959
Filter ID: 16959
User: B
Author: B
UI:
