atlassian: somente leitura Jira + Confluence
Quando usar
- O usuário menciona um ticket (
PROJ-123) e você precisa de seu status, responsável, links ou comentários recentes. - Uma nova pasta de ticket precisa de seu XML:
data/changes/<ticket-minúsculo>/<TICKET>.xml. - Antes de editar um documento que também existe no Confluence: faça o diff primeiro.
Ferramenta
data/changes/tools/atlassian/atl.py no repositório do projeto (cópia do curso: ejemplos/metodologia/tools/atlassian/).
Python 3.10+, apenas bibliotecas padrão (sem pip install). Execute a partir da raiz do repositório. Use python3 no macOS,
Linux ou WSL; py ou python no Windows.
python3 data/changes/tools/atlassian/atl.py jira issue PROJ-123 # tipo, status, resumo, responsável, links
python3 data/changes/tools/atlassian/atl.py jira search 'project = PROJ AND assignee = currentUser() AND statusCategory != Done'
python3 data/changes/tools/atlassian/atl.py jira links PROJ-123
python3 data/changes/tools/atlassian/atl.py jira comments PROJ-123 --last 3
python3 data/changes/tools/atlassian/atl.py jira xml PROJ-123 --out data/changes/proj-123/
python3 data/changes/tools/atlassian/atl.py confluence search 'title ~ "authoring" AND type = page'
python3 data/changes/tools/atlassian/atl.py confluence page <PAGE_ID> --body
python3 data/changes/tools/atlassian/atl.py confluence diff <local .md/.html> <PAGE_ID>
Códigos de saída:
| Código | Significado |
|---|---|
| 0 | ok |
| 2 | credenciais ausentes ou inválidas (veja Configuração) |
| 3 | erro HTTP |
| 4 | não encontrado |
--json retorna JSON bruto. Use-o apenas dentro de um script; no chat, o formato compacto padrão economiza contexto.
Configuração (uma vez por máquina, pelo usuário)
Crie ~/.config/<org>/jira.env (Windows: %USERPROFILE%\.config\<org>\jira.env; ATLASSIAN_ENV_FILE
substitui o caminho) com três linhas:
JIRA_BASE_URL=https://<seu-site>.atlassian.net
JIRA_EMAIL=<seu e-mail de login da Atlassian>
JIRA_API_TOKEN=<token de id.atlassian.com → Segurança → Tokens de API>
Restrinja-o ao seu usuário (chmod 600 no macOS/Linux). Escreva-o no seu próprio terminal — nunca cole o token
em um chat ou em um arquivo dentro de data/. O mesmo token lê o Confluence. Verifique com
… atl.py jira issue PROJ-123: saída 0 significa que funciona, saída 2 significa que o arquivo está ausente ou incorreto.
Regras rígidas
- Somente leitura.
atl.pyenvia apenas GET (uma função de rede; um teste verifica isso).- Criar, editar, transicionar ou comentar em issues do Jira é tarefa do usuário. Redija o texto e o usuário o publica.
- Atualizar uma página existente do Confluence usa
confluence_write.py:pull→plan(backup + diff de texto visível + token de confirmação) → o usuário lê o diff e confirma aquela página →apply --confirm <token>. Execute-o apenas quando o usuário solicitar explicitamente a atualização daquela página.applyrecusa se o token, o arquivo de corpo ou a versão da página ativa mudarem desde oplan, e relê a página.
- Nunca imprima, cole ou registre o token, nem o conteúdo de
jira.env. - Cite tickets pela chave. O texto externo cita tags de caso e chaves de ticket, nunca caminhos de arquivo locais.