O WebHook recebe eventos do github e os salva em uma base de dados.
Kotlin 1.3.10
Javalin 2.8.0
Exposed 0.10.4
H2Database 1.4.197
koin 1.0.0
Khttp 0.1.0
Docker 18.09.5
Todos os comandos deverão ser executado via terminal.
Fazer o checkout via GitHub e na raiz do projeto executar o comando abaixo:
mvn clean compile install
Após realizar o build, executar o arquivo DockerFile
docker build -t kotlin . && docker run kotlin
Criar uma network
docker network create myngroknet
Executar o container www baseado no image kotlin gerada acima e associá-la com a network
docker run -d -p 8080 --net myngroknet --name www kotlin
Executar o container do ngrok e associar a network para permitir que o ngrok acesse o container www
docker run -d -p 4040:4040 --net myngroknet --name ngrok wernight/ngrok ngrok http www:8080
Após alguns segundos, executar o comando abaixo para obter a public_url
curl $(docker port ngrok 4040)/api/tunnels
Em seguida, copiar a public_url, acessar o github, entrar em repositories, clicar em octoevents, settings, Webhooks, edit no webhook payload e colar o endereço gerado pelo nghok.
Para execução da gravação do evento, no github, criar issue no repositório octoevents
Criar issues
POST - http://localhost:8080/
buscar issue