Skrypt powłoki, aby sprawdzić publiczne repozytoria GitHub i powiadomić
- 3906
- 1083
- Natan Cholewa
GitHub jest wiodącą firmą tworzenia oprogramowania i kontroli wersji za pomocą GIT. To pozwala nam tworzyć publiczne repozytoria, a także prywatne. Oba mają własne korzyści. Prywatne repozytoria są zabezpieczone uwierzytelnianiem, podczas gdy publiczne repozytoria są dostępne dla wszystkich. Czasami my lub nasze zespoły produkujemy repozytoria z dostępem publicznym, które mogą zawierać poufne dane. Dobrym pomysłem jest skonfigurowanie skryptu, który powiadamia nas o repozytoriach, który pozostawił dostęp publiczny.
W tym samouczku stworzyłem skrypt powłoki, który sprawdza wszystkie publiczne repozytoria na podstawie konta Github i wysyła wiadomość e -mail z powiadomieniem. Skrypt można zaplanować pod Cronjobs, aby to zautomatyzować.
Wstępne wymagania
Ten skrypt używa narzędzi linii poleceń Curl i SendEmail. Upewnij się więc, że zainstalowałeś oba pakiety w swoim systemie.
sudo apt instal instaluj sendenta sententemail
Polecenie Curl służy do wywoływania interfejsu API GitHub, a Sendentail służy do wysyłania wiadomości e -mail za pośrednictwem serwera SMTP.
Utwórz skrypt powłoki
Już stworzyłem dla ciebie skrypt bash. Możesz po prostu skopiować skrypt i napisać go w pliku w systemie.
- Utwórz skrypt powłoki w swoim systemie i edytuj go w ulubionym edytorze tekstu:
Nano Check-Github-Public-Repos.cii
- Skopiuj poniższą zawartość i wklej ją do edytowanego pliku. #!/usr/bin/env bash ## Ustaw swoją nazwę użytkownika lub nazwa organizacji github_user = "tecadmin" ## pliki tymczasowe i lokalizację binarną TEMP_FILE = "/tmp/out.txt "maila_log ="/tmp/github-mail.log "curl_bin ="/usr/bin/curl "## SMTP Szczegóły do wysyłania powiadomień e -mailowych. Smtp_host = "e-mail-smtp.US-WEAST-1.Amazonaws.com "smtp_port =" 587 "smtp_user =" xxxxxxxxxxxxxxx "smtp_pass =" xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.com "e-mail_to =" Twój e-mail@przykład.com "## zaczyna się tutaj. ## Znajdź wszystkie repozytoria GitHub, które są publicznie dostępne. $ Curl_bin -s https: // api.github.com/Users/$ github_user/repos | grep "https: // github.com/[a-za-z0-9-]*/[a-za-z0-9-]*.git "> $ temp_file ## Wyślij powiadomienie e -mail, jeśli publiczne repozytorium znaleziono, jeśli [$? -Eq 0]; Następnie echo -e "drogi admin \ n"> $ maila_log echo -e "Znaleźliśmy kilka publicznych repozytoriów na koncie Github ($ github_user) \ n" >> $ Mail_Log Count = 1 podczas przeczytania linii; do repo_url = "echo $ line | cut -d": "-f2,3 | cut -d", "-f1" echo "count. $ Repo_url ">> $ Mail_Log ((count ++)) DODATE> $ Mail_Log ## Zmodyfikuj temat e -mail zgodnie z wygodą e -mail_subject =" ostrzeżenie: Github public repo "## Wyślij wiadomość e -mail z niniejszym e -mailem. System musiał zainstalować polecenie „SendEmail” (nie sendmail) ##. Cat $ Mail_Log | SendEmail -L /TMP /e -mail.log \ -f $ e -mail_from \ -u $ e -mail_subject \ -t $ e -mail_to \ -s $ smtp_host: $ SMTP_PORT \ -O $ SMTP_PASS FI ## Uznowienie poniżej, aby wydrukować wiadomość e -mail jako wyjście #cat $ Mail_Log
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 #!/usr/bin/env bash ## Ustaw swoją nazwę użytkownika lub organizację Nazwa github_user = "tecadmin" ## pliki tymczasowe i curl binarne LocationTemp_file = "/tmp/out.txt "maila_log ="/tmp/github-mail.log "curl_bin ="/usr/bin/curl "## SMTP Szczegóły do wysyłania powiadomień e -mailowych. Smtp_host = "e-mail-smtp.US-WEAST-1.Amazonaws.com "smtp_port =" 587 "smtp_user =" xxxxxxxxxxxxxxx "smtp_pass =" xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. ## Znajdź wszystkie repozytoria GitHub, które są publicznie dostępne.$ Curl_bin -s https: // api.github.com/Users/$ github_user/repos | grep "https: // github.com/[a-za-z0-9-]*/[a-za-z0-9-]*.git "> $ TEMP_FILE ## Wyślij powiadomienie e -mail, jeśli publiczne repozytorium określające [$? -Eq 0]; Następnie echo -e "drogi admin \ n"> $ maila_log echo -e "Znaleźliśmy kilka publicznych repozytoriów na koncie Github ($ github_user) \ n" >> $ Mail_Log Count = 1 podczas przeczytania linii; do Repo_Url = 'echo $ linia | CUT -D ":" -F2,3 | cut -d "," -f1 'echo "count. $ Repo_url ">> $ Mail_Log ((count ++)) < $TEMP_FILE echo -e "\n\n--\nThanks" >> $ Mail_Log ## Zmodyfikuj temat e -maila zgodnie z wygodą e -mail_subject = "ostrzeżenie: github publiczne repozytor. System musiał zainstalować polecenie „SendEmail” (nie sendmail) ##. Cat $ Mail_Log | SendEmail -L /TMP /e -mail.log \ -f $ e -mail_from \ -u $ e -mail_subject \ -t $ e -mail_to \ -s $ smtp_host: $ SMTP_PORT \ -O $ SMTP_PASS FI ## Uznowienie poniżej, aby wydrukować wiadomość e -mail jako wyjście#cat $ Mail_Log - Zaktualizuj identyfikator „github_user” o nazwę użytkownika lub organizacji GitHub. Zaktualizuj również szczegóły SMTP, aby uzyskać powiadomienia e -mail.
- Naciśnij „Ctrl + O”, aby napisać zmiany, a następnie „Ctrl + X”, aby zrezygnować z edytora. Następnie spraw, aby skrypt powłoki wykonywał za pomocą następującego polecenia.
CHMOD +x Check-Github-Public-Repos.cii
- Teraz twój scenariusz jest gotowy do uruchomienia. Możesz po prostu wykonać swój skrypt bezpośrednio na terminalu. Aby wydrukować wyniki na ekranie, możesz porzucić ostatni wiersz skryptu.
Bash Check-Github-Public-repos.cii
Po pomyślnym wykonaniu, jeśli skrypt znalazł jakieś publiczne repozytorium na koncie Github. Otrzymasz powiadomienie e -mail w swojej skrzynce pocztowej.
Zaplanuj skrypt z crontab
Możesz zaplanować ten skrypt, aby działał codziennie, co tydzień lub dwa razy w tygodniu. Poniższy przykład Crontab uruchomi ten skrypt codziennie o 12:00.
## Sprawdź repozytoria publiczne github 0 0 * * * Bash Check-Github-Public-Repos.cii12 | ## Sprawdź github publiczne repozytoria 0 0 * * * Bash Check-Github-Public-Repos.cii |
Wniosek
Najważniejsze jest zapewnienie bezpieczeństwa naszej ciężkiej pracy. Ten skrypt ostrzega Cię o repozytoriach łonowych na Twoim koncie Github. Możesz zmodyfikować skrypt zgodnie z Twoimi wymaganiami. Możesz także zapewnić swoje ulepszenie za pośrednictwem komentarzy. Przekaż także opinię na temat tego skryptu, który zachęca nas do pisania więcej.
- « Jak zainstalować VirtualBox 7.0 na Ubuntu 22.04
- 10 prostych sposobów przyspieszenia witryny WordPress »