Update custom field reviewers at Jira from bitbucket PR
914
Serviço escalável para sincronização automática de revisores pendentes do Bitbucket para campos customizados no Jira.
O Reviewers Update Queue resolve o problema de visibilidade de revisores no Jira. Ele monitora atualizações (via webhooks ou chamadas manuais) e sincroniza a lista de revisores com o dos Pull Requests vinculados a um card do Jira, atualizando um campo customizado de múltiplos usuários.
O serviço segue um padrão produtor-consumidor:
jiraCardId na fila.A configuração é feita via variáveis de ambiente. Você pode usar um arquivo .env na raiz do projeto.
| Variável | Descrição | Padrão |
|---|---|---|
PORT | Porta onde o servidor HTTP será executado. | 8080 |
JIRA_URL | URL base da sua instância do Jira (ex: https://company.atlassian.net). | - |
JIRA_EMAIL | Email do usuário técnico/robô para autenticação. | - |
JIRA_API_TOKEN | Token de API do Jira. | - |
JIRA_CUSTOM_FIELD | ID do campo customizado (ex: customfield_12345). | customfield_12345 |
API_KEY | Chave para autenticação nos endpoints. | - |
EXCLUDE_REVIEWER | Nome de usuário a ser ignorado na sincronização. | - |
WORKER_COUNT | Quantidade de workers simultâneos processando a fila. | 1 |
MAX_RETRIES | Número máximo de tentativas em caso de erro na API. | 3 |
Clone o repositório:
git clone https://github.com/youruser/reviwers_update_queue.git
cd reviwers_update_queue
Configure o ambiente:
cp .env.example .env
# Edite o arquivo .env com suas credenciais
Suba o container:
docker-compose up --build -d
go mod download
go run cmd/server/main.go
Adiciona um card à fila de processamento.
/syncPOSTX-API-Key: <sua_api_key>Content-Type: application/json{
"jiraCardId": "PROJ-123"
}
202 Accepted: Card adicionado à fila ou já estava pendente.401 Unauthorized: API Key inválida ou ausente.400 Bad Request: Formato de ID inválido.Retorna estatísticas de execução e estado atual da fila.
/metricsGET{
"errors": 0,
"pending_cards": 0,
"processed_total": 42,
"queued_cards": 0,
"retries": 2,
"uptime_seconds": 3600
}
├── cmd/server/ # Ponto de entrada (main)
├── internal/
│ ├── api/ # Handlers e middlewares HTTP
│ ├── config/ # Carregamento de configurações
│ ├── jira/ # Cliente de integração com Jira API
│ ├── metrics/ # Coleta de métricas e estatísticas
│ ├── queue/ # Lógica de fila e deduplicação
│ └── worker/ # Processamento assíncrono
└── docker-compose.yml # Orquestração local
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Content type
Image
Digest
sha256:4c55a5004…
Size
8.3 MB
Last updated
24 days ago
docker pull pheiterer/reviwers-queue