Skip to content

emka.web.id

Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

Skrip Shell untuk Memeriksa Repositori Publik Github Dan Memberitahu

Posted on October 10, 2022 by Syauqi Wiryahasana

GitHub adalah perusahaan terkemuka untuk pengembangan perangkat lunak dan kontrol versi menggunakan Git. Itu memungkinkan kita untuk membuat repositori publik maupun pribadi. Keduanya memiliki manfaat masing-masing. 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. Merupakan ide bagus, untuk mengonfigurasi skrip yang memberi tahu kami tentang repositori yang meninggalkan akses publik.

Dalam tutorial ini, saya telah membuat skrip shell yang memeriksa semua repositori publik di bawah akun GitHub dan mengirimkan email notifikasi. Script dapat dijadwalkan di bawah cronjobs untuk mengotomatisasi this.
Pre-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 memanggil GitHub API dan SendEmail digunakan untuk mengirim email melalui server SMTP.
Create a Shell Script

I telah membuat skrip bash untuk Anda. Anda cukup menyalin skrip dan menulisnya dalam file di sistem Anda.
Buat skrip shell di sistem Anda dan edit di editor teks favorit Anda:
nano check-github-public-repos.sh 
Salin konten di bawah ini dan rekatkan ke file yang diedit.

#!/usr/bin/env bash ## Tetapkan nama pengguna GitHub atau nama organisasi Anda GITHUB_USER="tecadmin" ## File sementara dan lokasi biner curl TEMP_FILE="/tmp/ out.txt" MAIL_LOG="/tmp/github-mail.log" CURL_BIN="/usr/bin/curl" ## Detail SMTP untuk mengirim pemberitahuan email. SMTP_HOST="email-smtp.us-east-1.amazonaws.com" SMTP_PORT="587" SMTP_USER="XXXXXXXXXXXXXXX" SMTP_PASS="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" EMAIL_FROM="notification@example.com" EMAIL_TO="your-email@example. com" ## Skrip dimulai di sini. ## Cari tahu semua repositori GitHub yang dapat diakses publik. ${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} ## Kirim pemberitahuan email jika publik repositori ditemukan jika [ $? -persamaan 0 ]; kemudian echo -e "Admin yang Terhormat n" > ${MAIL_LOG} echo -e "Kami menemukan beberapa repositori publik di akun GitHub Anda (${GITHUB_USER}) n" >> ${MAIL_LOG} count=1 saat membaca baris; lakukan REPO_URL=`echo ${line} | potong -d":" -f2,3 | cut -d"," -f1` echo "{count}. ${REPO_URL}" >> ${MAIL_LOG} ((count++)) selesai > ${MAIL_LOG} ## Ubah subjek email sesuai kenyamanan Anda EMAIL_SUBJECT="PERINGATAN: Repo Publik Github Ditemukan" ## Kirim email notifikasi. Sistem harus menginstal perintah "SendEmail" (bukan Sendmail) ## di sistem Anda. kucing ${MAIL_LOG} | sendemail -l /tmp/email.log -f ${EMAIL_FROM} -u ${EMAIL_SUBJECT} -t ${EMAIL_TO} -s ${SMTP_HOST}:${SMTP_PORT} -o tls=yes - xu ${SMTP_USER} -xp ${SMTP_PASS} fi ## Batalkan komentar di bawah ini untuk mencetak email sebagai output #cat ${MAIL_LOG}1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253/#USER_USER organisasi Anda/nama pengguna GishHub#! tecadmin" ## File sementara dan lokasi biner curlTEMP_FILE="/tmp/out.txt"MAIL_LOG="/tmp/github-mail.log"CURL_BIN="/usr/bin/curl" ## Detail SMTP untuk mengirim pemberitahuan email. SMTP_HOST="email-smtp.us-east-1.amazonaws.com"SMTP_PORT="587"SMTP_USER="XXXXXXXXXXXXXXX"SMTP_PASS="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"EMAIL_FROM="[email dilindungi]"EMAIL_TO="[email dilindungi]"  ## Skrip dimulai di sini. ## Cari tahu semua repositori GitHub yang dapat diakses publik.${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} ## Kirim pemberitahuan email jika publik repositori ditemukanif [ $? -persamaan 0 ]; lalu  echo -e "Admin yang Terhormat n" >  ${MAIL_LOG}  echo -e "Kami menemukan beberapa repositori publik di akun GitHub Anda (${GITHUB_USER}) n" >> ${MAIL_LOG}  count=1  saat membaca baris; lakukan        REPO_URL=`echo ${line} | potong -d":" -f2,3 | cut -d"," -f1`        echo "{count}. ${REPO_URL}" >> ${MAIL_LOG}       ((count++))  selesai > ${MAIL_LOG}    ## Ubah subjek email sesuai  kenyamanan Anda  EMAIL_SUBJECT=" PERINGATAN: Repo Publik Github Ditemukan"   ## Kirim email notifikasi. Sistem harus telah menginstal perintah "SendEmail" (bukan Sendmail)   ## di sistem Anda. kucing ${MAIL_LOG} | sendemail -l /tmp/email.log       -f ${EMAIL_FROM}       -u ${EMAIL_SUBJECT}      -t ${EMAIL_TO}       -s ${SMTP_HOST}:${SMTP_PORT}  -o  xu ${SMTP_USER}        -xp ${SMTP_PASS}fi ## Batalkan komentar di bawah untuk mencetak email sebagai output#cat ${MAIL_LOG}
Perbarui id “GITHUB_USER” dengan nama pengguna atau organisasi GitHub Anda. Juga, perbarui detail SMTP untuk mendapatkan notifikasi email. 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 
Sekarang, skrip Anda siap dijalankan. Anda cukup menjalankan skrip Anda langsung di terminal. Untuk mencetak hasil di layar, Anda dapat menghapus komentar pada baris terakhir skrip.
bash check-github-public-repos.sh 

On eksekusi berhasil, jika skrip menemukan repositori publik di akun GitHub Anda. Anda akan mendapatkan email pemberitahuan di kotak surat Anda.
Schedule Script dengan Crontab

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


## Periksa repositori publik GitHub 0 0 * * * bash check-github-public-repos.sh 12## Periksa repositori publik GitHub0   0   *   *   *   bash check -github-public-repos.sh

Conclusion

Yang paling penting adalah menjaga kerja keras kita tetap aman. Skrip ini akan mengingatkan Anda tentang repositori publik di akun GitHub Anda. Anda dapat memodifikasi skrip sesuai kebutuhan Anda. Anda juga dapat memberikan peningkatan Anda melalui komentar. Berikan juga tanggapan Anda tentang skrip ini, yang mendorong kami untuk menulis lebih banyak.


Referensi tecadmin.com
Seedbacklink

Recent Posts

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically