Skrip shell untuk memeriksa repositori publik gitub dan memberi tahu

Skrip shell untuk memeriksa repositori publik gitub dan memberi tahu

GitHub adalah perusahaan terkemuka untuk pengembangan perangkat lunak dan kontrol versi menggunakan git. Yang memungkinkan kami untuk membuat repositori publik serta yang pribadi. Keduanya memiliki manfaat sendiri. Repositori pribadi diamankan dengan otentikasi, sedangkan repositori publik dapat diakses oleh semua orang. Terkadang, kami atau tim kami membuat repositori dengan akses publik yang mungkin berisi data sensitif. Ide yang bagus, untuk mengonfigurasi skrip yang memberi tahu kami tentang repositori meninggalkan akses publik.

Dalam tutorial ini, saya telah membuat skrip shell yang memeriksa semua repositori publik di bawah akun github dan mengirim email pemberitahuan. Skrip dapat dijadwalkan di bawah cronjobs untuk mengotomatisasi ini.

Pra-requisiteis

Script ini menggunakan utilitas baris perintah curl dan sendemail. Jadi pastikan Anda telah menginstal kedua paket di sistem Anda.

sudo apt install curl sendemail  

Perintah CURL digunakan untuk menghubungi GitHub API dan SendeMail digunakan untuk mengirim email melalui server SMTP.

Buat skrip shell

Saya telah membuat skrip bash untuk Anda. Anda dapat menyalin skrip dan menulisnya dalam file di sistem Anda.

  1. Buat skrip shell di sistem Anda dan edit di editor teks favorit Anda:
    nano check-github-public-repos.SH  
  2. Salin konten di bawah ini dan tempel ke dalam file yang diedit. #!/usr/bin/env bash ## Setel nama pengguna github Anda atau nama organisasi github_user = "tecadmin" ## file sementara dan ikal lokasi biner temp_file = "/tmp/out.txt "mail_log ="/tmp/github-mail.log "curl_bin ="/usr/bin/curl "## SMTP Rincian untuk mengirim pemberitahuan email. Smtp_host = "email-smtp.US-East-1.Amazonaws.com "smtp_port =" 587 "smtp_user =" xxxxxxxxxxxxxxx "smtp_pass =" xxxxxxxxxxxxxxxxxxxxxxxxxxxxx "email_from =" pemberitahuan@contoh@contoh@contoh@contoh@contoh@contoh@[email protected] "email_to =" contoh@[email protected] "## skrip dimulai di sini. ## Cari tahu semua repositori gitub yang dapat diakses secara publik. $ Curl_bin -s https: // api.GitHub.com/user/$ github_user/repo | grep "https: // github.com/[a-za-z0-9-]*/[a-za-z0-9-]*.git "> $ temp_file ## Kirim pemberitahuan email jika repositori publik ditemukan jika [$? -eq 0]; Lalu echo -e "Dear admin \ n"> $ mail_log echo -e "Kami menemukan beberapa repositori publik di akun github Anda ($ github_user) \ n" >> $ mail_log count = 1 saat baca baris; do repo_url = "echo $ line | cut -d": "-f2,3 | cut -d", "-f1" echo "count. $ Repo_url ">> $ mail_log ((count ++)) selesai> $ mail_log ## Ubah subjek email sesuai kenyamanan Anda email_subject =" Warning: Github Public Repo Ditemukan "## Kirim email pemberitahuan. Sistem harus menginstal "sendemail" (bukan sendmail) ## perintah di sistem Anda. cat $ mail_log | sendemail -l /tmp /email.log \ -f $ email_from \ -u $ email_subject \ -t $ email_to \ -s $ smtp_host: $ smtp_port \ -o tls = ya \ -xu $ smtp_user \ -o $ Smtp_pass fi ## uncomment di bawah untuk mencetak email sebagai output #cat $ mail_log
    12345678910111213141516171819202122232425262728293031323334353637383940414243444464748484950551515544#!/usr/bin/env bash ## Setel nama pengguna github Anda atau nameGithub_user = "tecadmin" ## file sementara dan ikal biner locationTemp_file = "/tmp/out.txt "mail_log ="/tmp/github-mail.log "curl_bin ="/usr/bin/curl "## SMTP Rincian untuk mengirim pemberitahuan email. Smtp_host = "email-smtp.US-East-1.Amazonaws.com "smtp_port =" 587 "smtp_user =" xxxxxxxxxxxxxxx "smtp_pass =" xxxxxxxxxxxxxxxxxxxxxxxxxxxx "email =" email yang dilindungi email] "Email] [email terlindungi]" Email] [email = ". ## Cari tahu semua repositori gitub yang dapat diakses secara publik.$ Curl_bin -s https: // api.GitHub.com/user/$ github_user/repo | grep "https: // github.com/[a-za-z0-9-]*/[a-za-z0-9-]*.git "> $ temp_file ## Kirim pemberitahuan email jika repositori publik foundif [$? -eq 0]; Lalu echo -e "Dear admin \ n"> $ mail_log echo -e "Kami menemukan beberapa repositori publik di akun github Anda ($ github_user) \ n" >> $ mail_log count = 1 saat baca baris; do repo_url = 'echo $ line | cut -d ":" -f2,3 | cut -d "," -f1 'echo "count. $ Repo_url ">> $ mail_log ((count ++)) selesai < $TEMP_FILE echo -e "\n\n--\nThanks" >> $ Mail_log ## Ubah subjek email sesuai kenyamanan Anda email_subject = "Peringatan: GitHub Public Repo Ditemukan" ## Kirim email pemberitahuan. Sistem harus menginstal "sendemail" (bukan sendmail) ## perintah di sistem Anda. cat $ mail_log | sendemail -l /tmp /email.log \ -f $ email_from \ -u $ email_subject \ -t $ email_to \ -s $ smtp_host: $ smtp_port \ -o tls = ya \ -xu $ smtp_user \ -o $ Smtp_pass fi ## uncomment di bawah untuk mencetak email sebagai output#cat $ mail_log

  3. Perbarui ID “Github_user” dengan pengguna github atau nama organisasi Anda. Juga, perbarui detail SMTP untuk mendapatkan pemberitahuan email.
  4. Tekan "Ctrl + O" untuk menulis perubahan dan kemudian "Ctrl + X" untuk keluar dari editor. Kemudian buat skrip shell dapat dieksekusi dengan perintah berikut.
    CHMOD +X CHECK-GITHUB-PUBLIC-REPOS.SH  
  5. Sekarang, skrip Anda siap berjalan. Anda dapat dengan mudah menjalankan skrip Anda secara langsung di terminal. Untuk mencetak hasil di layar, Anda dapat membuka baris pada baris terakhir dari skrip.
    Bash check-github-public-Repos.SH  

Pada eksekusi yang berhasil, jika skrip menemukan repositori publik di akun GitHub Anda. Anda akan mendapatkan pemberitahuan email di kotak surat Anda.

Jadwalkan skrip dengan crontab

Anda dapat menjadwalkan skrip ini untuk berjalan setiap hari, mingguan, atau dua kali seminggu. Contoh crontab berikut akan menjalankan skrip ini setiap hari pada pukul 12:00.

## Periksa repositori publik github 0 0 * * * Bash check-github-public-repos.SH
12## Periksa repositori publik github 0 * * * bash check-github-public-repos.SH

Kesimpulan

Paling penting untuk menjaga kerja keras kita. Script ini akan mengingatkan Anda tentang repositori kemaluan di akun GitHub Anda. Anda dapat memodifikasi skrip sesuai kebutuhan Anda. Anda juga dapat memberikan peningkatan Anda melalui komentar. Juga berikan umpan balik Anda tentang skrip ini, yang mendorong kami untuk menulis lebih banyak.