Exemplos diversos de scripts Groovy utilizados em projetos.

Cada entrada possui um script e a breve descricao dele

Executar filtro salvo e iterar sobre os resultados

Utlizado no projeto da Metlife, para atualizar campos customizados periodicamente via servico groovy runner

//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
SearchRequestService srs = ComponentManager.getInstance().getSearchRequestService();
JiraServiceContext jsc = new JiraServiceContextImpl(user);
SearchRequest sr = srs.getFilter(jsc, filtroId);
SearchProvider sp = ComponentManager.getInstance().getSearchProvider();
SearchResults filterIssues = sp.search(sr.getQuery(), user, 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)
}