RubyGems からメンテナンスしていない Gem を削除した

RubyGems からメンテナンスしていない、というか作ろうと思って放置していた Gem を削除しました。

Gem を削除する方法は以下のページに記載があり、gem yank コマンドで削除できます。*1

help.rubygems.org

OTP コードが入力できない

多要素認証を設定していると、gem yank コマンドを実行できない問題に遭遇しました。OTP コードを聞かれませんし otp オプションも通りません。

% gem yank fake_delete -v 0.0.1.alpha.1
Yanking gem from https://rubygems.org...
You have enabled multifactor authentication but no OTP code provided. Please fill it and retry.
% gem yank fake_delete -v 0.0.1.alpha.1 --otp 123456
ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --otp

調べてみると、コードベースに対応したコードはあるものの、まだリリースされていないそうです。

github.com

github.com

仕方がないので、RubyGems の「MFA Level」を一時的に「UI」に変更し、再度コマンドを実行すると無事に実行できました。

% gem yank fake_delete -v 0.0.1.alpha.1
Yanking gem from https://rubygems.org...
Successfully deleted gem: fake_delete (0.0.1.alpha.1)

削除すると、RubyGems のページが以下のようになりました。 100 日後にネームスペースが開放されるそうで、それまでは新たなバージョンを push したり、オーナーを変更することができるそうです。

f:id:cho_co_by:20190929143417p:plain

何の Gem を作っていたのか

いい機会なので、何の Gem を作っていたのかメモしておきます。

  • fake_delete: 論理削除を行う Gem で、deleted_at カラムの型を timestamp にする (未削除は 0, 削除はタイムスタンプ) ことでデータベースのユニーク制約を効かせようと考えたもの
  • haguruma: あまり覚えていないが、GitHub などから受け取った Webhook を整形して Slack など複数の送信先に通知することを考えていたもの

*1:サポートフォーラムで依頼して削除してもらう方式かなと思っていました