“Prevent Public Repos”を導入してPublicなGithubリポジトリが作成されたら通知させる
はじめに
お恥ずかしながら、Github 上の Organization 内にメンバーが意図せず Public なリポジトリを作成してしまい、それに気づけなかったことがありました。
プロダクトコードをガシガシコミットされる前に気づけたのですが、「これは危ないな」と思い良い方法を探していたところ、 Github Apps に良さそうなアプリがあったので導入してみました。
検証環境
"Prevent Public Repos" を利用する
以下の Github Apps が今回の用途にピッタリでした。
Public な Github リポジトリが作成されたタイミングで、Critical な Issue を作成してくれます。
Issue が作成されたことで気付けるのか?というのも含めて試してみます。
"Prevent Public Repos" 導入方法
1. Github Apps を追加
Prevent Public Repos のページ右上にある Add to Github ボタンをクリックします。
別ページに飛ぶため、インストールする際の Organization を 1 つ選択します。
App ページが表示されるので、 Get Started に書かれているとおりに進めていきます。
2. 管理用の Github リポジトリを作成
org-settings
という名前で Organization リポジトリを新設することが推奨されているので、新しく作成します。
先程 Prevent Public Repos を追加した Organization にリポジトリを作成します。
Github の Web ページから作成してもいいのですが、コマンドライン操作に慣れているため、 gh
コマンドを使ってコマンドラインから作成しました。
※ここでは Organization 名を仮に "MY_ORG" としています 。
3. "org-settings" リポジトリの作業用ディレクトリに移動
gh
でリポジトリ作成するとローカル PC に Git 作業用ディレクトリが既にできているので、 cd
して移動しておきます。
もちろん、Web からリポジトリ作成した場合には git clone
したあとに cd
していただければ同様の操作になります。
4. "org-settings" リポジトリに設定ファイルを追加
設定ファイルを .github/prevent-public-repos.yaml
として作成します。
またまたコマンドラインでファイルを作成していますが、好きなエディタを開いてコンテンツを貼りつけても同じです。
5. 設定ファイルを Push
Github リポジトリに push します。
動作確認
それでは Public なリポジトリを作成し、検知されるかを確認してみます。
度々ですが、 gh
コマンドを使って Github 上に公開リポジトリを作成していますが、Web 上から操作しても同じです。
作成された直後に、僕のメールアドレスに通知が飛びました。
Issue の中に @genzouw
という文字が見えました。
リポジトリ作成者にメンションしているため、通知が行われたようです。
最後に不要となったリポジトリを削除しましょう。
コマンドラインから...といきたところですが、2021-05-21 時点では gh
コマンドでリポジトリを削除できないようなので以下のコマンドで Github ページを開いて手作業で。
※ gh
コマンドにリポジトリ削除機能を入れる話は Issue として上がっているようです 。
危険なコマンドではあるので、導入に慎重になったというのもわかります 。
ひとこと
Issue と飛んてきた通知メールを無視されてしまった場合のリスクもありますが、取り急ぎ最低限のコストでリスクを潰しておきました。
ディスカッション
コメント一覧
まだ、コメントがありません