Condicione um deploy a um botão de chat, não a uma aba de dashboard
Pause o pipeline, publique botões de aprovar/rejeitar no canal que já está acompanhando o release, e deixe o clique — não alguém vigiando uma aba — retomar ou cancelar a execução.
A maioria dos gates de deploy ainda significa alguém voltando à aba do dashboard de CI a cada poucos minutos para ver se há uma execução esperando por ele. O Dailybot move o gate para o canal que já está acompanhando o release: aprove ou rejeite a partir de um botão, e seu servidor de CI recebe o clique por meio de um callback assinado — sem aba, sem polling.
Esta página cobre o gate em si — botões de aprovar/rejeitar conectados a callback_url com callback_auth, confirmados com uma auto-resposta response, e opcionalmente encadeados a um botão callback_workflow para o que vier a seguir.
Construa passo a passo
Pause o pipeline no gate
Quando o pipeline chega a um gate de deploy, faça-o dar POST para /v1/send-message/ em vez de esperar em um dashboard. Direcione para o canal que já acompanha o release — Slack, Microsoft Teams, Discord ou Google Chat funcionam do mesmo jeito.
Anexe botões de aprovar/rejeitar com um callback assinado
Adicione dois botões interativos, cada um com callback_url apontando para seu servidor de CI e callback_auth para autenticação de transporte bearer, basic ou custom-header. callback_auth só é válido junto com callback_url — não tem efeito nos outros quatro tipos de callback.
Retome ou cancele a partir do clique
Aprovar publica seu value ("approve", ou o que você escolheu) para callback_url; Rejeitar publica o seu próprio. Seu servidor de CI verifica a requisição assinada e retoma ou cancela a execução — o clique é a automação, não um aviso sobre uma.
Confirme no canal
Adicione uma auto-resposta response a cada botão para que o canal veja a confirmação imediatamente — "Aprovado — implantando agora" ou "Rejeitado — deploy cancelado" — sem que ninguém precise atualizar uma página de pipeline.
Encadeie um botão de workflow para a próxima etapa
Combine um botão callback_workflow na mesma mensagem — por exemplo um botão "Reimplantar staging" que dispara um workflow api_trigger — para que a próxima etapa também esteja a um clique de distância.
Veja em ação
Um fluxo de aprovação simulado — nenhuma mensagem real é enviada.
Vamos implantar a 4.12.0 em produção?
O que o clique realmente faz
Clique em um botão acima para ver o que o callback assinado faz.
Receitas para copiar e colar
curl -sS -X POST 'https://api.dailybot.com/v1/send-message/' \
-H 'X-API-KEY: $DAILYBOT_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"message":"Vamos implantar 4.12.0 em produção?","target_channels":["C0123456789"],"buttons":[{"label":"Aprovar","button_type":"interactive","value":"approve","callback_url":"https://ci.example.com/hooks/deploy","callback_auth":{"type":"bearer","token":"$DEPLOY_CALLBACK_TOKEN"},"response":{"message":"Aprovado — implantando agora."}},{"label":"Rejeitar","button_type":"interactive","value":"reject","callback_url":"https://ci.example.com/hooks/deploy","callback_auth":{"type":"bearer","token":"$DEPLOY_CALLBACK_TOKEN"},"response":{"message":"Rejeitado — deploy cancelado."}}]}'
dailybot chat send -c C0123456789 -m "Vamos implantar 4.12.0 em produção?" \
--approve-button "Aprovar=approved" \
--reject-button "Rejeitar=rejected" \
--callback-url "https://ci.example.com/hooks/deploy" \
--callback-bearer "$DEPLOY_CALLBACK_TOKEN"
dailybot chat send -c C0123456789 -m "Aprovado. Pronto para reimplantar staging a seguir?" \
--workflow-button "Reimplantar staging=$REDEPLOY_WORKFLOW_UUID"
Publique uma mensagem de aprovação de deploy-gate para #deploys com
botões de aprovar/rejeitar que façam POST para
https://ci.example.com/hooks/deploy, autenticados com um token bearer
de $DEPLOY_CALLBACK_TOKEN.
Pronto para transformar como sua equipe trabalha?
Junte-se a milhares de equipes que usam o Dailybot para economizar tempo, impulsionar o engajamento e tomar melhores decisões.