2 ポイント 投稿者 justn 2026-04-17 | 10件のコメント | WhatsAppで共有

テスト用リポジトリを消そうとして、9人のGitHub組織を丸ごと消し飛ばしてしまいました。

Discord Webhookボットのend-to-endテスト中、テスト用リポジトリのSettingsだと思い込んでDanger Zoneまでスクロールし、"Delete this repository" を押しました。削除直後にリダイレクトされたページがリポジトリの404ではなく組織の404で、そのときになって初めて、ずっと組織のSettingsにいたことに気づきました。

決定打は、確認テキストをちゃんと読んでいなかったことです。削除対象は当然テスト用リポジトリだと信じてコピペしてしまい、実際に入力欄へ入っていたのは組織名でした。コピペ一発でそのまま通過。リポジトリ、Issue、PR、Discussion、CI履歴がすべて一撃で消えました。

チームメンバーに緊急でカカオトークを送り、GitHubサポートにもメールして、7営業日待ちました。

その間はpushもIssueの確認もできません。

でも、考えれば考えるほどおかしかったのです。

リポジトリ削除でも組織削除でも、復旧経路は同じく「サポートへのメール」です。なのに組織はメンバー数十人、リポジトリ数十個が丸ごと吹き飛ぶのに、UIはリポジトリ削除フローをそのまま使い回し、コピペもでき、破壊力に対する警告もありません。100倍大きい被害を出せるボタンが、まったく同じ弱いガードレールで守られているわけです。

そこで for-real を作りました。

登録しておいたリポジトリ/組織で削除ボタンを押すとクリックを横取りし、20文字のランダムコードを自分でタイプしてはじめて5分間アンロックされます。コピペはできません。本気なら、打てばいいだけです。

GitHubがすでにDanger Zoneで警告していることはわかっています。でも、たった一人でも私のようなミスを防げるなら、少しの手間には十分価値があると思いました。

Web Storeの審査中なので、現時点ではunpackedでのインストールのみ可能です。インストールガイドとソースはリポジトリにあります。フィードバック歓迎です。

ショーケース: https://www.youtube.com/watch?v=n3q9DMqOb_s

10件のコメント

 
joyfui 2026-04-17

YouTubeチャンネルを削除しようとしてGoogleアカウントを削除してしまった、という話を聞いたことがありますが(幸い復旧できたそうです)
その方もこういう手順があれば、あんな惨事は防げたのでしょうか……?

 
dydwls140 2026-04-17

Delete this repositoryDelete this organization を取り違えることもあるんですね。

 
justn 2026-04-17

思ったより Settings UI が似ていて、ぼんやりした状態で操作していると紛らわしかったんですよね;;
GitHub も Danger Zone として分けてはいるんですが、結局ヒューマンエラーはその中でも起きるんですよね,,

 
dydwls140 2026-04-17

気をつけないとですね..

 
ipeng 2026-04-17

https://httpie.io/blog/stardust 以前、似たような理由で 54k star が初期化されたこともありましたが、そのときも UI の問題が指摘されていて、もう 4 年も経っていたんですね。

 
runableapp 2026-04-17

背筋が凍る思いをされたことでしょう。体験談を共有し、問題を防ぐ解決策まで提示されている姿が素晴らしいです。

こうした大規模な削除には、猶予期間のようなものが必要ではないかと思います。コンピューターのごみ箱のように、実際の削除は数日後に行われるようにして、再び復旧できる仕組みが必要に見えます。

 
hshim 2026-04-17

うわ、ぞっとしますね..

 
holywork 2026-04-17

コピー&ペーストだけ防げばよさそうですね

 
justn 2026-04-17

私も何も考えずにコピペして消してしまったので……このプロジェクトではコピペも防止するようにしてあります。読んでいただきありがとうございます

 
holywork 2026-04-21

良いプログラムを共有してくださってありがとうございます。GitHub側で組織またはアカウントの削除を24〜72時間ほど自動的に遅延してくれると良いですね。