GitHubのDanger Zoneを全部見た

2023/10/19に公開

こんにちは、アルダグラムでモバイルアプリの開発に携わっている、@sohichiro です。

GitHubのSettingsにあるDanger Zone。
見た目からして、かなりおっかなそうな雰囲気を醸し出しています。
Danger Zone、なかなか触るところでもないので、ちょっと触ってみることにしました。

⚠️注意⚠️

  • ここに書かれている内容は、レポジトリを破壊してしまう動作の説明が含まれます。くれぐれも業務用のレポジトリで試してみたりすることはお控えください。
  • 本記事の内容は、2023/10/18時点での内容です。GitHubのアップデートにより、UI/UXは変更されている場合がありますのでご了承ください。

それでは、Danger Zoneの探検に出かけていきましょう。

今回は、何かの過ちがあってはいけないので、Danger Zoneを確認することのみを目的としたレポジトリを作成し、そちらで確認を行っています。

Danger Zoneの入口

Danger Zoneの入口はSettingsタブです。
なおSettingsタブが表示されるのは、admin権限を保持している場合のみです。

admin権限を保持していると、下記のようになります。

目的地である秘境Danger Zoneは、Settingsタブの最下層に存在しています。

明らかに今までとは違う赤をベースとした色調が、この領域が危険な場所であることを明示しています。

Change repository visibility

一番最初に登場するのは、「Change repository visibility」です。
レポジトリの公開設定を変更する項目です。
こちらは、private設定しているレポジトリに対して、Change visibilityをクリックしたときの画像です。Change to publicと出てきて、

こちらをクリックすると、、、確認ダイアログが現れます。

バツボタンを押すと、元に戻れますが、「I want to make this reposiroty public」を押してしまうと、公開になってしまうのでしょうか?

いえいえ、再度確認画面がありました。

レポジトリをpublicにすると、以下のような変更がありますよ。と。ちゃんと理解していますか?との念押しがされます。
わかりましたと。隠すものなどありませんと。ということで、「I have read and understand these effects」をクリックすると、、

なんと、もう一度確認ダイアログが表示されました。なんという念の押し様。。
このボタンをクリックすることで、やっとpublicになります。
ちなみに、publicになった後は、特にpublicになりましたよ、といったダイアログは表示されず、レポジトリの名前にあった鍵マークが消えるだけです。

あれ?公開範囲変わったのかな?という感じになりますが、レポジトリの名前の横の表示は更新されています。

では逆に、publicにしたレポジトリを、privateにしてみましょう。
基本的には、privateからpublicにした際と同じ確認フローになっています。
先ほどと同じように、Change visibilityをクリックすると、今度はChange to privateと出てきます。

Change to privateをクリック。

確認ダイアログが出てきて、、

これから起こることの意味合いを確認され

ほんとに、OK?と念押しされます。

赤いボタンの「Make this repository private」をクリックすると、レポジトリがprivateになります。赤いボタンを押した後の動作は、publicと全く同じで、レポジトリの公開範囲が変更になったことを確認するには、レポジトリの名前の横の表示を確認するのが良いです。

Disable branch protection rules

続いて、「Disable branch protection rules」です。
こちらは、読んだ通りなのですが、ブランチのプロテクションルールを無効にするものです。
ボタンをクリックすると、、いつものやつが現れます。

ですが、確認はこれだけで、こちらはこのあとDisable branch protection rulesをクリックすると変更が即座に反映されます。心の準備をする間もなく設定が反映されちゃうのでご注意を。

逆に設定を再度有効にするには、以下のようになっているので、

ポチッとすると、、

という確認画面が表示され、ボタンをクリックすると、Re-enable branch protection rulesがONになります。

ここはDanger Zoneの中でもそこまで危険度が高くないところだったように感じられました。(それでも誤って変更してしまうと大変なことになっちゃいそうですが)

Transfer ownership

さて、気を取り直して次の秘境へ参りましょう。
次の秘境は、Transfer ownershipです!
この秘境では、レポジトリの所有権を他の人に渡すことができます!
ボタンをクリックすると、いつもの通り、今から起こることの効果がわかってますか?という内容のポップアップが表示されます。

今回は、注意事項が他と比べて多いので、全画面表示で注意事項が表示されます。

所有権を他の組織や個人に渡すので、それらを指定し、いつものようにレポジトリ名を記入して、「I understand, transfer this reposiroty」をクリックすると、所有権が他の人に渡り、、ません!

相手側の承認が必要です。

受け取る側のアカウントのメールアドレスに以下のような本文のメールが届きます。なお、今回は、レポジトリの現所有者のアカウント名はsohichiroとしていて、レポジトリの譲渡先のアカウント名は、daijiromaeyama、レポジトリ名は、dangerZoneとしています。

To accept the transfer, visit this linkに続くURLをレポジトリを渡す相手側でクリックしてもらってはじめて所有権が移動します。

上記のURLをクリックすると、以下のような表示があるWebページが開きます。

レポジトリdangerZoneが、daijiromaeyama(譲渡先アカウント)のアカウントの管理下になったよ、という表示が現れます。

確かに、dangerZoneレポジトリがdaijiromaeyamaアカウントに紐づいています。

当たり前といえば当たり前なのかもですが、所有者が変わった以外の変化はありませんでした(今回は公開状態をprivateにしていて、その設定がそのまま引き継がれていました)。
(このあとの記事が書けないので、レポジトリは返してもらいました)

Archive this repository

そろそろ後戻りできないところまで足を踏み入れてしまったようです。。
次は、Archive this repositoryです。
こちらは、レポジトリがこれ以上アクティブにメンテナンスされなくなったことを公にするための機能です。詳細は公式サイト をご確認いただければと。
こちらも行ってみましょう。

Archive this repositoryボタンをクリックすると現れるのは、こちら。

archive状態になると、色々動かせなくなるので、以下のことをお勧めしてくれています。

  • レポジトリの設定をアップデートすること
  • openになっているissueとPull Requestの全てが、closeすること
  • READMEにその旨を書くこと

それでもArchiveする場合は、確認のために、レポジトリ名をタイプする必要があります。
レポジトリ名を入力すると、今まで押せなかったボタンが押せるようになります。

このボタンを押すと、即座にarchiveが実行されます。
こちらは分かりやすく、画面が切り替わります。
(設定項目がガッツリなくなるので、変化がわかりやすいと思います)

Archiveされると、上部に、「This repository has been archived 」と表示されます。

私が知っている有名なarchiveされたレポジトリとしては、AFNetworkingがあります。

https://github.com/AFNetworking/AFNetworking

祇園精舎の鐘の声 諸行無常の響きあり。娑羅双樹の花の色 盛者必衰の理をあらはす。
あんなに活気のあったレポジトリも役目を終えて、archiveされると、訪れる人も減るんだろうなぁと思うと、目から汗が。。。

そんな寂しさを紛らわすために、archiveしたレポジトリを、再度編集したくなる気持ちも出てくると思います!ありますよね!!そんな時も!!!

そんな時は、こちらのボタンをどうぞ!

read onlyのデータが書き込み可能になるので、それにより弊害を考慮してよ?と教えてくれます。親切。

archiveしたときと同じように、レポジトリ名をタイプして、I understand the consequences, unarchive this repositoryをクリックすると、、即座にunarchiveされ、また色々書き込みが可能になります。お別れの時間は短かった。。

Delete this repository

そしていよいよ最後の未到の地がやってまいりました。
Delete this repositoryゾーンです。
これはその名の通り、レポジトリのデータを削除するためボタンです。
ここは流石にデータが消える場所ということで、アラートの数が多かったです(といっても3回)。

まず1回目。

そして2回目。

そしてダメ押しの3回目。

レポジトリ名が一文字でも違っていると、ボタンが押せないのは、いつもの感じで、、

ちゃんと一文字違わずレポジトリ名を入力すると、

Delete this repositoryボタンが押せるようになります。

では。。。お願いしまーっす!

ぽちっとなぁ!

・・・
・・・
・・・

あっさりと消えてしまいました。。

一定期間は復活できたりするかな?と動線を探してみたりしましたが、ありました。90日以内であれば復活させることができるようです。詳細はこちらをご確認ください。
(今回使用したレポジトリはDanger Zoneでの振る舞いを確認するために作成した空レポジトリだったので、復元はできませんでした。。)
といったところで秘境めぐりは以上となります。

まとめ

今回は、あまり触ることのないGitHubのDanger Zoneを色々触ってみました。不可逆な変化を伴う操作を行うため、ミスによる不幸が減るような設計がされているなぁという印象です。何事も一度触っておくと、いざという時に慌てなくて済むと思うので、何事も経験しておくのは大事だなと思います。

アルダグラムでは、色々な未開の地を一緒に開拓してくれる勇気あるエンジニアを募集しています。

アルダグラム Tech Blog

Discussion