Skip to end of metadata
Go to start of metadata

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 12 Atual »

Aqui voce encontra

Dicas de uso, customizacoes, uso avancado e exemplos de desenvolvimento para o Atlassian JIRA

Nao deixe de ver

  • Forum de discussao Atlassian: URL...
  • API JIRA atualizada: URL...
  • API JIRA REST atualizada: URL...

CONTEUDO


Blogs interessantes

REST, SOAP, Webservices e Integracao

Como trabalhar a parte de integracao do Jira com outros softwares?

DICA ESSENCIAL - Use API SOAP e REST, e evite API nativa interna.

Alguns links:

  1. http://confluence.atlassian.com/display/REST/REST+API+Developer+Documentation

Abaixo, alguns itens sobre servicos remotos no Jira, como usa-los e estende-los:

Como estender o servico RPC SOAP do Jira?

Veja o tutorial [http://www.j-tricks.com/1/post/2010/10/soap-rpc-plugin.html|http://www.j-tricks.com/1/post/2010/10/soap-rpc-plugin.html]

Automacao de operacoes e integracoes externas

Como executar operacoes no Jira usando linha de comando?

https://studio.plugins.atlassian.com/wiki/display/JCLI/JIRA+Command+Line+Interface

Como executar operacoes no Jira usando Wget e Curl (muito util para testes de carga e profiling)?

http://confluence.atlassian.com/display/JIRACOM/Automating+JIRA+operations+via+wget

E aqui, um exemplo de criacao de option dentro de um customfield:

curl -X POST "http://3layer.com.br/jira/secure/admin/EditCustomFieldOptions!add.jspa?os_username=AAA&os_password=BBB&addValue=XXX&fieldConfigSchemeId=10251&fieldConfigId=10251&customFieldId=10231"

Onde:

  • AAA: Login do usuario com permissoes de adminsitrador
  • BBB: Senha
  • XXX: Nova option a ser criada

Como executar operacoes no Jira a partir de commits no Subversion?

Duas opcoes:

  1. Use o Jira Studio, em http://confluence.atlassian.com/display/JIRASTUDIO/Actioning+Issues+via+Commit+Messages
  2. Implemente voce mesmo. Leia o post http://blogs.atlassian.com/developer/2009/10/dragon_slayer_supplement_action_issues_with_commit_commands.html

Permissoes

h4 Como aplicar permissoes sobre o Jira em determinado passo do workflow?

Automacao de campos e telas

Leia antes de prosseguir

Todo movimento da Atlassian em relacao a automacao de campos e telas em seus sistemas (Jira, Confluence, Crowd, etc.) esta focada no framework AUI (Atlassian User Interface).

Algum links muito importantes antes de prosseguir:

Como estender as acoes de tela do Jira?

Vide o tutorial: http://www.j-tricks.com/1/post/2010/10/extending-jira-actions.html

Como mostrar e ocultar campos das telas do Jira baseado em dependencias de tela?

Da para usar javascript e jquery para isso. Um exemplo bem interessante, onde se selecionado um Checkbox outro campo eh mostrado pode ser encontrado aqui http://confluence.atlassian.com/display/JIRACOM/Using+Javascript+to+set+custom+field+values

Quais os plugins mais indicados para trabalhar com automacoes de campos e telas no Jira?

Alguns:

  1. Jira Behaviors (essencial), bem interessante em https://studio.plugins.atlassian.com/wiki/display/JBHV/JIRA+Behaviours+Plugin

Como posso utilizar Javascripts nas telas do Jira?

Um link bem interessante sobre isso eh este http://confluence.atlassian.com/display/JIRACOM/Using+Javascript+to+set+custom+field+values

Como inserir um script que vai rodar em todas paginas do Jira?

Olhe http://confluence.atlassian.com/display/JIRA/Adding+JavaScript+to+all+pages+for+Google+Analytics

POREM, nos testes iniciais parece que isso nao funcionou muito bem. Tem que explorar mais.

Como utilizar JQuery no Jira?

Essa eh bem complexa, e entao vao algumas dicas:

  1. Primeiro leia este post para "abrir sua mente" (piscar o olho) - http://www.suddenelfilio.net/2010/09/06/using-jquery-and-custom-fields-to-enforce-issue-type-security-in-jira/

Importante salientar que o suporte a JQuery ainda nao tem uma boa documentacao, e entao a pesquisa deve ser no google mesmo...

Alguns links:

  1. Quintessential link sobre AUI na Atlassian: http://confluence.atlassian.com/display/AUI/Atlassian+User+Interface+(AUI)+Developer+Documentation
  2. Discussao levantada no AtlasCamp 2010 por Igor Sereda: http://confluence.atlassian.com/display/ATL/Hacking+into+AJS
  3. Apresentacao do AtlasCamp 2010, sobre JQuery no Jira: http://confluence.atlassian.com/display/ATL/Needs+more+jQuery+-+Using+advanced+Javascript+in+Atlassian+Plugins
  4. AJS, (nao sei se eh o caso, mas acredito que o Jira usa isso por padrao) - http://www.ajaxupdates.com/ajs-javascript-library/ e este http://orangoo.com/labs/AJS/

Agora, se voce nao sabe nada sobre JQuery, comece aqui:

  1. Incio de tudo - http://jquery.com/
  2. Tutorial de 18 minutos - TEM QUE LER PARA COMECAR A ENTENER COMO FUNCION O JQUERY - http://www.authenticsociety.com/blog/jQueryPluginTutorial_Beginner
  3. JQuery 1.4 (o Jira 4.1 trabalha com JQuery 1.2.3, e nao tem algumas dessas features - como o metodo Delay()) - http://jquery14.com/day-01/jquery-14
  4. OTIMO LINK para aprender visualmente JQuery - http://visualjquery.com/
  5. Tutorial em lingua portuguesa para iniciar com JQuery - http://i18n.2kminterativa.com.br/jquery/jquery-getting-started-pt_br.html
  6. JQuery Timers, para funcoes com tempos no JQuery (foi integrado ao JQuery nativo pelo que deu pra entender) - http://plugins.jquery.com/project/timers (antigo link - http://jquery.offput.ca/every/)
  7. Populando forms via JSON - http://www.keyframesandcode.com/resources/javascript/jQuery/demos/populate-demo.html
  8. MUITO UTIL, link com 10 tuturiais sobre como usar jquery - http://www.catswhocode.com/blog/10-jquery-tutorials-for-working-with-html-forms
  9. QUnit, ou seja, Testes Unitarios no JQuery, http://docs.jquery.com/Qunit

Alguns posts relacionados

  1. http://stackoverflow.com/questions/3501603/using-jquery-in-jira
  2. http://stackoverflow.com/questions/558445/dynamically-fill-in-form-values-with-jquery
  3. http://www.josefrichter.com/blog/clear-and-re-fill-form-fields-using-jquery/
  4. MUITO UTIL TAMBEM - Populando campos de formaulario com dados JSON conforme vai digitando - http://www.nodstrum.com/2007/09/19/autocompleter/

Pacote do plugin para JQuery Resource Plugin no Jira

  1. O Link - https://plugins.atlassian.com/plugin/details/14397
  2. Plugins integrados nele (tem que ver como usar ainda):
    1. JQueryUI - http://jqueryui.com/docs/Getting_Started
    2. Form e BlockUI - http://malsup.com/jquery/
    3. Inserir outros plugins, ou acesse a aba de configuracao do plugi no Jira, que mostra todos os links de cada plugin JQuery disponivel

Alteracao de Issues via Codigo

Como alterar o valor de um customfield via script groovy em uma postfunction?

import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
import webwork.dispatcher.ActionResult;
import com.atlassian.core.ofbiz.CoreFactory;
import com.atlassian.core.util.map.EasyMap;
import com.atlassian.jira.action.ActionNames;
import org.ofbiz.core.entity.GenericValue;
import com.atlassian.core.ofbiz.CoreFactory;
import com.atlassian.core.util.map.EasyMap;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.project.ProjectManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.util.ImportUtils;
import com.atlassian.jira.issue.index.IssueIndexManager;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import com.atlassian.jira.issue.*;
import com.atlassian.jira.issue.util.*;
import com.atlassian.jira.config.SubTaskManager;
import com.atlassian.jira.security.JiraAuthenticationContext;
import com.atlassian.jira.security.roles.*;
import com.atlassian.jira.issue.fields.layout.field.*;
import com.atlassian.jira.issue.fields.*;
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.issue.comments.*;
import com.atlassian.mail.Email
import com.atlassian.mail.server.MailServerManager
import com.atlassian.mail.server.SMTPMailServer
import com.opensymphony.workflow.InvalidInputException;
import org.apache.log4j.Category;
import com.opensymphony.user.*;
import groovy.net.xmlrpc.*; 
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.comments.CommentManager;
import com.atlassian.jira.user.util.*;
import com.atlassian.jira.issue.util.IssueChangeHolder;
//Instancia objetos genericos
ComponentManager componentManager = ComponentManager.getInstance();
CommentManager commentManager = (CommentManager) ComponentManager.getComponentInstanceOfType(CommentManager.class)
IssueManager issueManager = componentManager.getIssueManager()
SubTaskManager subTaskManager = componentManager.getSubTaskManager();
JiraAuthenticationContext authenticationContext = componentManager.getJiraAuthenticationContext();
IssueFactory issueFactory = componentManager.getIssueFactory();
ProjectRoleManager projectRoleManager = componentManager.getComponentInstanceOfType(com.atlassian.jira.security.roles.ProjectRoleManager.class);
ProjectManager projectManager = componentManager.getProjectManager();  
CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()
FieldLayoutManager fieldLayoutManager = componentManager.getFieldLayoutManager()
CustomFieldManager customFieldManage = componentManager.getCustomFieldManager()
FieldManager fieldManager = componentManager.getFieldManager()

//Exemplo para ser executado via Groovy Runner
Issue issue = issueManager.getIssueObject("T-472")
MutableIssue mIssue = (MutableIssue) issue
String cfkey = "customfield_10406"
def cf = ComponentManager.getInstance().getCustomFieldManager().getCustomFieldObject(cfkey)
String cfvalue = (String) mIssue.getCustomFieldValue( cf ) ?: "";
def novoValor = "4h - um turno"
IssueChangeHolder changeHolder = new DefaultIssueChangeHolder();
transacaoSapCustomField.updateValue(null, mIssue, new ModifiedValue(issue.getCustomFieldValue(transacaoSapCustomField), novoValor),changeHolder);

Vide os links

Desabilitar abas de visualizacao do Jira

Para desabilitar aba "Histórico de Mudanças"
Plugin:Issue Tab Panels Plugin 1.0
Opção: Issue Tab Panels Plugin 1.0 | Disable/Enable

Para desabilitar aba "Atividade"
Plugin: JIRA Activity Stream Plugin 5.1.0
Opção:  Activity Stream Issue Tab Panel

Para desabilitar aba de "Transição"
Plugin: JIRA Suite Utilities 1.2.4
Opção:  Transitions Summary Tab Panel

Worfkflows

Como criar um validador ou uma condition no Jira?

Use os links:

http://www.j-tricks.com/1/post/2010/08/workflow-validator.html

http://www.j-tricks.com/1/post/2010/08/workflow-condition.html

Como customizar a ordem das operacoes de workflow no Jira 4.x, na pagina de visualizacao da tarefa

Consulte http://confluence.atlassian.com/display/JIRA/Configuring+Workflow#ConfiguringWorkflow-Customisingtheappearanceandorderofworkflowtransitionsonthe%27ViewIssue%27page

Como habilitar (restringir) somente alguns (de todos possiveis) assignable users em uma etapa do workflow?

Muitas vezes, uma tela de workflow permite escolher o responsavel (Assignee) pela tarefa. Porem, para cenarios onde existem muitos assignable users (que implica em uma combobox muito grande) ou onde devido a caracteristica do workflow, onde somente algumas pessoas naquele momento deveriam poder ser "assignadas", é interessante restringir essa os valores da combobox Assignee para somente mostrar algumas pessoas.

Considere o cenario onde um solicitante ao abrir um chamado ele precisa a aprovacao de seu superior. Assim, quando ele abre o chamado, ele precisa direcionar o chamado aberto para a aprovacao. Entao, digamos que tenhamos a role "Aprovador" no sistema, com o ID 10020. Logo, para colocar isso em pratica:

  1. Edite o workflow do projeto, na etapa "Open", insira uma property, com o valor "jira.permission.assignable.projectrole = 10002"

Pronto, quando o solicitante estiver na tela de abertura de chamado, somente quem estiver na role "Aprovador" vai aparecer dentro da lista de Assingees, mesmo que dezenas de outros "Assignable Users" existam no modelo de permissao.

Mais informacoes: http://confluence.atlassian.com/display/JIRA/Workflow+Properties

Quais os plugins existentes para adicionar funcionalides nos workflows do Jira?

Faca uma busca no site de plugins da atlassian.

Abaixo, alguns links indicados:

  1. Pagina da Atlassian com informacoes, http://confluence.atlassian.com/display/JIRA/Configuring+Workflow
  2. Javadoc da Atlassian relacioanda, http://docs.atlassian.com/software/jira/docs/api/latest/com/atlassian/jira/security/WorkflowBasedPermissionManager.html
  3. Informacoes sobre propriedades que podem ser colocadas em passos e transicoes do workflow, http://confluence.atlassian.com/display/JIRA/Workflow+Properties
  4. Jira Toolbox, contem 18 funcionalides para workflows, https://plugins.atlassian.com/plugin/details/29496
  5. Issue relacionada na Atlassian, que contem link para codigo-fonte zipado de uma classe que implementa o "famoso" Limit "Assign To" list to specific user group, em http://jira.atlassian.com/browse/JRA-6126
  6. Jira Suite Utilities, nao pode faltar numa instalacao jira, http://code.google.com/p/jira-suite-utilities/
  7. Plugin da CustomWare com uma funcionalidade boa para ITIL e outros 2 campos customizados para vinculacao de multiplos grupos e usuarios, https://plugins.atlassian.com/plugin/details/15453
  8. Jira Plugin Pack, contem funcionalidades para validadores, condicoes e postfunctions, incluindo uma muito boa para copia de propriedades do usuario para fields e outra de copia de fields via expressao regular. Tambem permite setar dashboards para usuarios e outra feature para "assignar" a issue para o primeiro membro de um grupo, em http://bytes.org.ua/products/jira-plugin-pack/
  9. Jira Workflow Miscellaneous Extensions, em https://studio.plugins.atlassian.com/wiki/display/JMWE/JIRA+Misc+Workflow+Extensions+Documentation, permite assignar uma issue para um membro de uma role, ou setar um campo de issue a partir de uma property de um usuario ou setar o security level a partir da role do usuario, muito semelhante ao plugin da WE Engineer, entre outras coisas.

Como setar automaticamente um Assignee ou Securirty level baseado no perfil do usuario logado ou outra coisa?

Use o plugin http://www.weengineer.com/home/products/atlassian/jira/plugins/WEENGWF/1.1.0/index.php

Como setar automaticamente uma issue para uma pessoa?

Nas postfuntions do workflow, use os plugins:

  1. WF Engineer ou,
  2. Jira Workflow Miscellaneous Extension.

Outra forma eh usar script Jelly:

  1. Crie um filtro com os parametros da query que precisa ser seta (ex.: Todas criadas pela area x... e que estao no status "criada"...);
  2. Monte um script Jelly que processa a query e seta o campo assingee (detalhes em http://confluence.atlassian.com/display/JIRA/Jelly+Escalation);
  3. Salve o script no servidor;
  4. Configure um listener para chamar o script a cada intervalo de tempo relevante.
  • Sem rótulos