...
Utlizado no projeto da Metlife, para atualizar campos customizados periodicamente via servico groovy runner
| Bloco de código |
|---|
import com.atlassian.jira.issue.*; import com.atlassian.jira.*; import com.atlassian.jira.util.*; import com.atlassian.jira.issue.index.*; import com.atlassian.jira.issue.fields.*; import com.atlassian.jira.issue.fields.layout.*; import com.atlassian.jira.issue.fields.field.*; import com.atlassian.jira.issue.util.*; import com.atlassian.jira.ofbiz.OfBizValueWrapper; import com.googlecode.jsu.util.WorkflowUtils; import com.atlassian.jira.bc.*; import com.atlassian.jira.bc.filter.*; import com.atlassian.jira.web.bean.*; import com.atlassian.jira.issue.search.*; import com.opensymphony.user.*; import java.text.*; import java.util.*; //Pega um filtro salvo pelo ID, itera sobre os resultado e atualiza os campos necessarios em cada issue //See//ID do filtro salvo def filtroId = 10010; //Usuario padrao para o filtro, caso nao seja o usuario logado def username = "user.admin"; //Se o script for invocado por um usuario... User remoteUser = ComponentManager.getInstance().getJiraAuthenticationContext().getUser(); //Ou se o script for invocado pelo sistema (caso de agendamentos periodicos), eh preciso explicitar um usuario padrao com acesso ao filtro salvo User defaultUser = ComponentManager.getInstance().getUserUtil().getUser(username); //Pega o usuario logado, ou entao o usuario padrao User user = remoteUser != null ? remoteUser : defaultUser; println("Executando filtro: " + 10010 + " via usuario: " + user); //Veja exemplo em http://osdir.com/ml/java.jira.devel/2008-11/msg00168.html def filtroId = 10010; User remoteuser = ComponentManager.getInstance().getJiraAuthenticationContext().getUser(); SearchRequestService srs = ComponentManager.getInstance().getSearchRequestService(); JiraServiceContext jsc = new JiraServiceContextImpl(remoteuseruser); SearchRequest sr = srs.getFilter(jsc, filtroId); SearchProvider sp = ComponentManager.getInstance().getSearchProvider(); SearchResults filterIssues = sp.search(sr.getQuery(), remoteuseruser, PagerFilter.getUnlimitedFilter()); //Itera nas issues List issues = filterIssues.getIssues(); def result = "Issue results: " + issues.size println(result) for(Issue i : issues) { def item = "Issue: " + i.key + " - " + i.summary println(item) } |