Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.1. Desenvolvimento do script de extração de dado #78

Open
Guidevit opened this issue Jul 18, 2023 · 0 comments
Open

2.1. Desenvolvimento do script de extração de dado #78

Guidevit opened this issue Jul 18, 2023 · 0 comments

Comments

@Guidevit
Copy link
Member

Desenvolver o script que se conectará ao webhook do GitHub para extrair os dados. Essa tarefa depende da finalização da tarefa 1.1.

Aqui estão os detalhes técnicos desta tarefa:

Criação do Webhook: Antes de tudo, será necessário configurar um webhook no repositório do GitHub cujas atividades queremos monitorar. O webhook irá enviar eventos para um payload URL especificado sempre que ocorrerem atividades especificadas, tais como mudanças em issues ou pull requests.

Criação do endpoint do servidor: Para receber os eventos do webhook, precisamos criar um endpoint em nosso servidor. Este endpoint deve ser capaz de aceitar POST requests, pois é o método que o GitHub usa para enviar os dados do evento. No Python, podemos usar um framework como Flask ou Django para configurar este endpoint.

Extração de dados do payload: Quando o GitHub aciona o webhook, ele envia uma carga útil (payload) que contém todas as informações do evento. Esta carga útil é um JSON que contém todos os detalhes do evento. A estrutura exata do JSON depende do tipo de evento. Por exemplo, um evento de issue terá informações como o título da issue, o usuário que a criou, a data e a hora da criação, entre outros. Precisamos extrair os dados relevantes deste JSON para posterior processamento e inserção no banco de dados. Em Python, podemos usar o módulo json para parsear a carga útil e extrair os dados necessários.

Tratamento de erros: É importante garantir que nosso script possa lidar com erros. Por exemplo, se o GitHub não conseguir enviar a carga útil para o nosso endpoint (talvez devido a um problema de rede), ele tentará novamente até que a entrega seja bem-sucedida. Nosso script deve ser capaz de lidar com esses casos de erro e garantir que não perdemos nenhum dado.

Segurança: Como o webhook do GitHub pode potencialmente conter informações sensíveis, é crucial garantir que nosso endpoint seja seguro. Podemos fazer isso de várias maneiras, como usar HTTPS para o nosso endpoint, validar o payload do GitHub verificando o cabeçalho de assinatura que eles incluem, ou limitar as fontes de IP que podem acessar o nosso endpoint.

Por fim, essa tarefa deve ser concluída antes de passar para a próxima fase de transformação dos dados extraídos. Esta é a razão pela qual esta tarefa depende da finalização da tarefa 1.1. Além disso, a fim de testar adequadamente o script de extração de dados, seria útil ter algum esquema de dados e um banco de dados onde os dados possam ser inseridos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants