(jp) =
GitHub は、Git を使用したソフトウェア開発とバージョン管理のリーディング カンパニーです。 これにより、公開リポジトリと非公開リポジトリを作成できます。 どちらにも独自の利点があります。 プライベート リポジトリは認証によって保護されますが、パブリック リポジトリは誰でもアクセスできます。 私たちまたは私たちのチームは、機密データを含む可能性があるパブリック アクセスのリポジトリを作成することがあります。 パブリック アクセスが残っているリポジトリを通知するスクリプトを構成することをお勧めします。
このチュートリアルでは、GitHub アカウントの下にあるすべてのパブリック リポジトリをチェックし、通知メールを送信するシェル スクリプトを作成しました。 これを自動化するために、スクリプトを cronjobs の下でスケジュールできます。
事前申請
このスクリプトは、Curl および SendEmail コマンド ライン ユーティリティを使用します。 そのため、システムに両方のパッケージがインストールされていることを確認してください。
sudo apt install curl sendemail
curl コマンドは GitHub API を呼び出すために使用され、SendEmail は SMTP サーバー経由でメールを送信するために使用されます。
シェル スクリプトを作成する
私はすでにあなたのために bash スクリプトを作成しました。 スクリプトをコピーして、システム上のファイルに書き込むだけです。
- システムでシェル スクリプトを作成し、お気に入りのテキスト エディターで編集します。
nano check-github-public-repos.sh - 以下の内容をコピーし、編集したファイルに貼り付けます。
#!/usr/bin/env bash ## GitHub のユーザー名または組織名を設定します GITHUB_USER=”tecadmin” ## 一時ファイルと curl バイナリの場所 TEMP_FILE=”/tmp/out.txt” MAIL_LOG=”/tmp/github-mail .log” CURL_BIN=”/usr/bin/curl” ## 電子メール通知を送信するための SMTP の詳細。 SMTP_HOST=”email-smtp.us-east-1.amazonaws.com” SMTP_PORT=”587″ SMTP_USER=”XXXXXXXXXXXXXXX” SMTP_PASS=”XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX” EMAIL_FROM=”[email protected]” EMAIL_TO=”your-email@example com ” ## スクリプトはここから始まります。 ## 一般公開されているすべての GitHub リポジトリを見つけてください。 $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 ## パブリック リポジトリが見つかった場合に電子メール通知を送信する [ $? -eq 0 ]; 次に echo -e “Dear Admin \n” > $MAIL_LOG echo -e “GitHub アカウント ($GITHUB_USER) にいくつかのパブリック リポジトリが見つかりました\n” >> $MAIL_LOG count=1 while read line; do REPO_URL=`echo $line | カット -d”:” -f2,3 | cut -d”,” -f1` echo “count. $REPO_URL” >> $MAIL_LOG ((count++)) done > $MAIL_LOG ## 都合の良いようにメールの件名を変更してください EMAIL_SUBJECT=”WARNING: Github Public Repo Found” ## 通知メールを送信します。 システムは、システムに “SendEmail” (Sendmail ではない) ## コマンドをインストールしている必要があります。 猫 $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 ## メールを出力として印刷するには、以下のコメントを外します #cat $MAIL_LOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env bash
## GitHub のユーザー名または組織名を設定します
GITHUB_USER=「テックアドミン」
## 一時ファイルと curl バイナリの場所
TEMP_FILE=「/tmp/out.txt」
MAIL_LOG=「/tmp/github-mail.log」
CURL_BIN=「/usr/bin/curl」
## 電子メール通知を送信するための SMTP の詳細。
SMTP_HOST=「email-smtp.us-east-1.amazonaws.com」
SMTP_PORT=「587」
SMTP_USER=「XXXXXXXXXXXXXXX」
SMTP_PASS=“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”
## スクリプトはここから始まります。
## 一般公開されているすべての GitHub リポジトリを見つけてください。
$CURL_BIN –s https:///アピック.github.com/ユーザー/$GITHUB_USER/リポジトリ | | grep https://github.com/[a-zA-Z0-9-]*/[a-zA-Z0-9-]*。ギット” > $TEMP_FILE
## 公開リポジトリが見つかった場合に電子メール通知を送信する
もしも [ $? –eq 0 ]; それから
エコー –e 「親愛なる管理者\n」 > $MAIL_LOG
エコー –e “あなたの GitHub アカウント ($GITHUB_USER) にいくつかのパブリック リポジトリが見つかりました \n” >> $MAIL_LOG
カウント=1
その間 読んだ ライン; 行う
REPO_URL=`エコー $ライン | | 切る –d“:” –f2、3 | | 切る –d“、” –f1`
エコー 「count.$REPO_URL」 >> $MAIL_LOG
((カウント++))
終わり < $TEMP_FILE
エコー –e 「\n\n–\nありがとう」 >> $MAIL_LOG
## ご都合に合わせてメールの件名を変更してください
メールの件名=「警告: Github パブリック リポジトリが見つかりました」
## 通知メールを送信します。 システムに「SendEmail」がインストールされている必要があります (Sendmail ではありません)。
## コマンドをシステムに追加します。
猫 $MAIL_LOG | | メールを送る –l /tmp/Eメール。ログ \
–へ $EMAIL_FROM \
–あなた $メールの件名 \
–t $EMAIL_TO \
–s $SMTP_HOST:$SMTP_PORT \
–〇 TLS=はい \
–徐 $SMTP_USER \
–xp $SMTP_PASS
フィ
## メールを出力として印刷するには、以下のコメントを外します
#猫 $MAIL_LOG
- 「GITHUB_USER」ID を GitHub ユーザーまたは組織名で更新します。 また、SMTP の詳細を更新して、電子メール通知を受け取ります。
- 「CTRL + O」を押して変更を書き込み、「CTRL + X」を押してエディターを終了します。 次に、次のコマンドでシェル スクリプトを実行可能にします。
chmod +x check-github-public-repos.sh - これで、スクリプトを実行する準備が整いました。 スクリプトを端末で直接実行するだけです。 結果を画面に出力するには、スクリプトの最後の行のコメントを解除します。
bash check-github-public-repos.sh
スクリプトが GitHub アカウントでパブリック リポジトリを見つけた場合は、正常に実行されます。 メールボックスにメール通知が届きます。
Crontab でスクリプトをスケジュールする
このスクリプトは、毎日、毎週、または週に 2 回実行するようにスケジュールできます。 次の crontab の例では、このスクリプトを毎日午前 12:00 に実行します。
## GitHub 公開リポジトリをチェック 0 0 * * * bash check-github-public-repos.sh
|
## GitHub パブリック リポジトリを確認する 0 0 * * * バッシュ 小切手–ギットハブ–公衆–リポジトリ.sh |
結論
私たちのハードワークを安全に保つことが最も重要です。 このスクリプトは、GitHub アカウントの公開リポジトリについて警告します。 要件に応じてスクリプトを変更できます。 コメントを介して機能強化を提供することもできます。 また、このスクリプトに関するフィードバックをお寄せください。これにより、さらに多くのスクリプトを作成することができます。