Ir para o conteúdo

Codaqui e seu Boletim de Segurança!

Oi! Eu sou o Elias, aluno da Codaqui, o meu objetivo aqui é ensinar como eu criei um sistema de envio de e-mails, sem ter um servidor de e-mail e utilizando o GitHub para me alertar do boletim de segurança.

Gostaria de já fazer um agradecimento pela ajuda do Fundador da Codaqui, Enderson Menezes, que esteve me auxiliando no processo de criação desse projeto.

Vamos lá!

1° Passo

  1. Vá no seu perfil e procure por Repositories.
  2. Crie um novo repositório no github clicando em New, com nome de sua preferência.

2° Passo

  1. Dentro desse repositório crie dois arquivos .sh, clicando em Add File, Create new file.
  2. Chamados de number.sh e script.sh.
  3. Ele são responsáveis por decodificar os dados.

  4. Cógido dos arquivos .sh: script.sh. number.sh.

3° Passo

  1. Crie também uma pasta chamada de .github, no repositório
  2. Depois aperte /, ele entenderá que você quer gerar uma pasta.
  3. Por fim dentro dessa pasta crie um arquivo chamado boletim.md.

  4. Código do boletim.md: boletim.md.

4º Passo

  1. No mesmo diretório do arquivo boletim.md, crie outra pasta chamada de workflows.
  2. Dentro do workflows crie um arquivo chamado de boletim-diario.yml.

  3. Código do boletim-diario.yml:

boletim-diario.yml

5° Passo

OBS: Tudo já está normal, mas e necessário editar algumas parte do boletim-diario.yml.

  • Procure por essas partes do códigos e faça oque é pedido abaixo!

1° altere isso:

on: 
    schedule:
      - cron: '0 13 * * *'
para isso:

on: push
depois altere:
chmod +X ./number.sh
bash ./number.sh
var=$( cat numero_final.txt )
gh issue close $var
para isso:

#chmod +X ./number.sh
#bash ./number.sh
#var=$( cat numero_final.txt )
#gh issue close $var

2° quando terminar salve as modificações e espere o Actions validar o código, logo após a criação da primeira Issue, modifique o código novamente e volte como estava antes.

  • Para receber no E-mail leia nossa README.md, isso também é valido na sua aplicação.

1° Passo

  • Criar um repositório no Github!

step1

2° Passo

  • Criar scripts responsáveis por decodificar os dados.

step2

3º Passo

  • Criar pasta .github e arquivo md(Corpo para gerar ISSUES).

step3

  • Aperte / depois de escrever .github para gerar uma pasta.
  • Código usado para criar o boletim.md.

4° Passo

  • Criar pasta workflows e arquivo yml(Responsável por iniciar as tarefas).

step4

5° Passo

  • Para teste e funcionamento de tudo altere o arquivo yml como no gif abaixo

step5

altere:

on: 
    schedule:
      - cron: '0 13 * * *'
para

on: push
E também altere:
chmod +X ./number.sh
bash ./number.sh
var=$( cat numero_final.txt )
gh issue close $var
para

#chmod +X ./number.sh
#bash ./number.sh
#var=$( cat numero_final.txt )
#gh issue close $var
- Depois de salvar espere o Actions validar o código e gerar uma nova Issue. - Em seguida altere novamente o código como o anterior do 4° passo. - Pronto Está tudo funcionando! - Para receber no E-mail leia nossa README.md, isso também é valido na sua aplicação.

Observações Importantes

1° Observação

  • O código pode ser totalmente moldado por sua preferencia, só é preciso alterar o script.sh na linha abaixo
    xmllint --html --xpath "/html/body/div[1]/main/section[2]/div/div/div/div/div/div[2]" boletim1.txt 1> boletim2.txt 2> /dev/null
    
  • Especificamente tudo entre "", para isso você deve entender a estrutura da página, no qual será pego as informações.

2° Observação

  • O horário está marcado para o Actions disparar a Issue as 13h, 0GMT, 10h no horário de Brasilia!
  • Você pode alterar o horário mudando o código mostrado abaixo:
      schedule:
         - cron: '0 13 * * *'
    

3° Observação

  • Quais quer problemas futuros com o sistema criado podem ser variados, devem ser analisados.
  • Possiveis casos previstos:

  • JasonEtco/create-an-issue@v2 atualiza a maneira de gerenciar o aquivo .md na pasta .github.

  • A parte do bash realiza a tarefa sem atualizar o arquivo gerado no processo criando um erro, nesse caso você só da um push mostrado no ultimo passo mostrado acima.

4º Observação

  • Os nomes de arquivos e variáveis podem ser alteras, mas caso procure fazer isso, verifique se tudos os nomes modificados estão certos para funcionar.

Comentários