RubyGems からメンテナンスしていない Gem を削除した
RubyGems からメンテナンスしていない、というか作ろうと思って放置していた Gem を削除しました。
Gem を削除する方法は以下のページに記載があり、gem yank
コマンドで削除できます。((サポートフォーラムで依頼して削除してもらう方式かなと思っていました))
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
調べてみると、コードベースに対応したコードはあるものの、まだリリースされていないそうです。
-
gem yank
+ 2FA requires OTP, but has no way to provide it · Issue #2790 · rubygems/rubygems · GitHub
仕方がないので、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 したり、オーナーを変更することができるそうです。
何の Gem を作っていたのか
いい機会なので、何の Gem を作っていたのかメモしておきます。
fake_delete
: 論理削除を行う Gem で、deleted_at
カラムの型を timestamp にする (未削除は0
, 削除はタイムスタンプ) ことでデータベースのユニーク制約を効かせようと考えたものhaguruma
: あまり覚えていないが、GitHub などから受け取った Webhook を整形して Slack など複数の送信先に通知することを考えていたもの