Shell -Skript, um GitHub Public Repositories zu überprüfen und benachrichtigen

Shell -Skript, um GitHub Public Repositories zu überprüfen und benachrichtigen

GitHub ist das führende Unternehmen für Softwareentwicklung und -versionskontrolle mit Git. Dadurch können wir sowohl öffentliche als auch private Repositorys erstellen. Beide haben ihre eigenen Vorteile. Die privaten Repositorys sind mit Authentifizierung gesichert, während die öffentlichen Repositorys für alle zugänglich sind. Manchmal machen wir oder unsere Teams Repositorys mit öffentlicher Zugriff, die sensible Daten enthalten können. Es ist eine gute Idee, ein Skript zu konfigurieren, das uns über die Repositorys informiert.

In diesem Tutorial habe ich ein Shell -Skript erstellt, das für alle öffentlichen Repositories unter einem Github -Konto überprüft und eine Benachrichtigungs -E -Mail gesendet wird. Das Skript kann unter den Cronjobs geplant werden, um dies zu automatisieren.

Vor-requisiteis

Dieses Skript verwendet Curl- und Sendemail -Befehlszeilen -Dienstprogramme. Stellen Sie also sicher, dass Sie beide Pakete auf Ihrem System installiert haben.

sudo apt installieren curl sendemail  

Der Befehl curl wird zum Aufrufen von Github -API verwendet und Sendemail wird zum Senden von E -Mails über den SMTP -Server verwendet.

Erstellen Sie ein Shell -Skript

Ich habe bereits ein Bash -Skript für Sie erstellt. Sie können das Skript einfach kopieren und in eine Datei auf Ihrem System schreiben.

  1. Erstellen Sie ein Shell -Skript in Ihrem System und bearbeiten Sie es in Ihrem bevorzugten Texteditor:
    Nano Check-Github-öffentliche Repos.Sch  
  2. Kopieren Sie den folgenden Inhalt und fügen Sie sie in die bearbeitete Datei ein. #!/usr/bin/env Bash ## ## Setzen Sie Ihren Github -Benutzernamen oder Ihren Organisationsnamen github_user = "tecadmin" ## Temporäre Dateien und Curl Binary -Standort temp_file = "/tmp/out.txt "mail_log ="/tmp/github-mail.Log "curl_bin ="/usr/bin/curl "## SMTP -Details zum Senden von E -Mail -Benachrichtigungen. SMTP_HOST = "E-Mail-smtp.US-Ost-1.Amazonawen.com "SMTP_PORT =" 587 "SMTP_USER =" xxxxxxxxxxxxxxx "SMTP_PASS =" xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "E -Mail_From =" [email protected] "E-Mail_to =" Ihr [email protected] "## Skript beginnt hier. ## Finden Sie alle GitHub -Repositories heraus, die öffentlich zugänglich sind. $ Curl_bin -s https: // api.Github.com/user/$ github_user/repos | grep "https: // github.com/[a-za-z0-9-]*/[a-za-z0-9-]*.Git "> $ temp_file ## Senden Sie eine E -Mail -Benachrichtigung, wenn ein öffentliches Repository if [$ gefunden wurde? -Gl 0]; dann echo -e "Lieber Admin \ n"> $ mail_log echo -e "Wir haben nur wenige öffentliche Repositories in Ihrem Github -Konto gefunden ($ github_user) \ n" >> $ mail_log count = 1, während Lesen Zeile gelesen wird; do repo_url = "echo $ line | cut -d": "-f2,3 | cut -d", "-f1" echo "count. $ Repo_url ">> $ mail_log ((count ++)) erledigt> $ mail_log ## Ändern Sie das E -Mail -Betreff gemäß Ihrer Bequemlichkeitszeiten -E -Mail -Subject =. Das System muss "sendemail" (nicht sendmail) ## in Ihrem System installiert haben. 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 TLS = yes \ -xu Smtp_User \ --xp $ SMTP_PASS FI ## DRUCKENTE DRUCKEN DIE E -Mail als Ausgabe #cat $ mail_log
    123456789101112131415161718192021223242526272829303132333435363738394041424243445464748495051535354#!/usr/bin/env Bash ## ## Setzen Sie Ihren GitHub -Benutzernamen oder die Organisation namgithub_user = "tecadmin" ## Temporäre Dateien und curl -Binärdokumente locationTemp_file = "/tmp/out.txt "mail_log ="/tmp/github-mail.Log "curl_bin ="/usr/bin/curl "## SMTP -Details zum Senden von E -Mail -Benachrichtigungen. SMTP_HOST = "E-Mail-smtp.US-Ost-1.Amazonawen.com"SMTP_PORT="587"SMTP_USER="XXXXXXXXXXXXXXX"SMTP_PASS="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"EMAIL_FROM="[email protected]"EMAIL_TO="[email protected]" ## Script begins here. ## Finden Sie alle GitHub -Repositories heraus, die öffentlich zugänglich sind.$ Curl_bin -s https: // api.Github.com/user/$ github_user/repos | grep "https: // github.com/[a-za-z0-9-]*/[a-za-z0-9-]*.Git "> $ temp_file ## Senden Sie eine E -Mail -Benachrichtigung, wenn ein öffentliches Repository Fostif [$? -Gl 0]; dann echo -e "Lieber Admin \ n"> $ mail_log echo -e "Wir haben nur wenige öffentliche Repositories in Ihrem Github -Konto gefunden ($ github_user) \ n" >> $ mail_log count = 1, während Lesen Zeile gelesen wird; do repo_url = 'echo $ line | Cut -d ":" -f2,3 | cut -d "," -f1 'echo "count. $ Repo_url ">> $ mail_log ((count ++)) erledigt < $TEMP_FILE echo -e "\n\n--\nThanks" >> $ Mail_log ## Ändern Sie den E -Mail -Betreff gemäß Ihrem Convenience -E -Mail_Subject = "WARNUNG: GitHub Public Repo gefunden" ## Die Benachrichtigungs -E -Mail senden. Das System muss "sendemail" (nicht sendmail) ## in Ihrem System installiert haben. 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 TLS = yes \ -xu Smtp_User \ --xp $ SMTP_PASS FI ## CONMENTUNG unten, um die E -Mail als Ausgabe zu drucken#cat $ mail_log

  3. Aktualisieren Sie die ID "github_user" mit Ihrem GitHub -Benutzer- oder Organisationsnamen. Aktualisieren Sie auch die SMTP -Details, um E -Mail -Benachrichtigungen zu erhalten.
  4. Drücken Sie "Strg + O", um die Änderungen zu schreiben, und dann "Strg + x", um den Editor zu beenden. Lassen Sie dann das Shell -Skript mit dem folgenden Befehl ausführen.
    CHMOD +X Check-Github-Public-Repos.Sch  
  5. Jetzt ist Ihr Skript bereit zu laufen. Sie können Ihr Skript einfach direkt auf dem Terminal ausführen. Um die Ergebnisse auf dem Bildschirm zu drucken.
    Bash-Check-Github-Public-Repos.Sch  

Bei erfolgreicher Ausführung fand das Skript ein öffentliches Repository in Ihrem Github -Konto. Sie erhalten eine E -Mail -Benachrichtigung in Ihrem Mailbox.

Planen Sie das Skript mit Crontab

Sie können dieses Skript so planen, dass Sie täglich, wöchentlich oder zweimal pro Woche ausgeführt werden. Das folgende Beispiel von Crontab wird dieses Skript täglich um 12:00 Uhr ausführen.

## prüfen GitHub Public Repositories 0 0 * * * Bash Check-Github-öffentliche Repos.Sch
12## prüfen GitHub Public Repositories0 0 * * * Bash Check-Github-öffentliche Repos.Sch

Abschluss

Es ist am wichtigsten, unsere harte Arbeit sicher zu machen. Dieses Skript wird Sie auf die Schambetriebsrepositories in Ihrem GitHub -Konto aufmerksam machen. Sie können das Skript gemäß Ihren Anforderungen ändern. Sie können Ihre Verbesserung auch über die Kommentare bereitstellen. Geben Sie auch Ihr Feedback zu diesem Skript, das uns dazu ermutigt, mehr zu schreiben.