Cada evento que o GitHub envia inclui um cabeçalho de solicitação denominado HTTP_X_GITHUB_EVENT, que indica o tipo de evento na solicitação de POST. No momento, você só está interessado nos tipos de evento de problemas. Cada evento tem um campo ação adicional que indica o tipo de ação que acionou os eventos. Para problemas, o campo ação pode ser atribuído, não atribuído, etiquetado, não etiquetado,, abriu, editado, marcado,, desmarcado, fechado ou reaberto.
Para testar seu gerenciador de eventos, tente adicionar um método auxiliar temporário. Você irá atualizar mais tarde ao Adicionar o gerenciamento da etiqueta. Por enquanto, adicione o seguinte código na seção Ajudantes fazem do código. Você pode colocar o novo método acima ou abaixo de qualquer outro método de ajuda. A ordem não importa.
Este método recebe uma carga de eventos formatada em JSON como argumento. Isso significa que você pode analisar a carga no método e detalhar os dados específicos de que você precisa. Você pode achar útil inspecionar a carga completa em algum momento: tente alterar logger.debug 'An issue was opened! para logger.debug payload. A estrutura da carga que você vê deve corresponder ao que é mostrado na documentação de evento de webhook dos problemas.
No seu navegador, acesse o repositório onde você instalou seu aplicativo. Abra um novo problema neste repositório. O problema pode dizer o que você quiser. É apenas para teste.
Ao olhar para o seu Terminal, você deve ver uma mensagem na saída que diz: Um problema foi aberto! Parabéns! Você adicionou um gerenciador de eventos ao seu aplicativo. 💪
Ok, seu aplicativo pode dizer quando os problemas estão abertos. Agora você quer que ele adicione a etiqueta needs-response a qualquer problema recém-aberto em um repositório no qual o aplicativo está instalado.
Antes que a etiqueta possa ser adicionada em qualquer lugar, você precisará criar a etiqueta personalizada no seu repositório. Você só terá de fazer isso uma vez. Para fins deste guia, crie a etiqueta manualmente no GitHub. No seu repositório, clique em Problemas e, em seguida, em Etiquetas e depois clique em Nova etiqueta. Nomeie a nova etiqueta needs-response.
Dica: Não seria ótimo se o aplicativo pudesse criar a etiqueta de forma programática? Ele pode! Adicione o código para fazer isso por conta própria depois de concluir as etapas deste guia.
Agora que o rótulo foi criado, você pode programar seu aplicativo para usar a API REST para adicionar a etiqueta a qualquer problema recém-aberto.