LoginSignup
19
18

More than 5 years have passed since last update.

[WIP] どこに置くprivateなruby gem₍₍ (̨̡ ‾᷄⌂‾᷅)̧̢ ₎₎

Last updated at Posted at 2014-11-03

:warning: 生煮えQiita記事です :warning:

課題

rubygemsに公開したくないgem:sparkles::gem::sparkles:がある。
例えば、社外秘のドメインのためのgem(以後private gemと呼んだりする)や、フォークしてメンテナンスし続けているgemなど。
そういうgemをどこで公開するのがよいのだろうか。
公開する場所はもちろん、gemを開発するためのリポジトリやコードレビューのツールも欲しい。

gem serverをたてる

RubyGems GuidesのRun your own gem serverが参考になる。

gem server

gem serverでローカルのgemを公開することができる。

前述のRun your own gem serverで紹介されている。

[WIP] Gem in a Box

使ったことがないのであとで試したい
geminabox/geminabox

[WIP] Gemfury

使ったことがないのであとで試したい
Private Gem Server, npm Registry, PyPI Repository & more • Gemfury

Git

BundlerのGemfileで使うgemを記述する際gitオプションを使うとGitリポジトリをgemとして使えるようになる。
開発用のGitリポジトリをそのまま公開して使えるのでポピュラーだと思う。

GitHub

GitHub · Build software better, together.を見ると、一番安い個人用アカウントのmicro planだと$7〜で5つまでプライベートリポジトリが持てる。
次のような問題がある

  • gem:sparkles::gem::sparkles:が大量にあるので1つ1つprivate repositoryを使うとお金が飛ぶ :money_with_wings:
    • gemごとにブランチを切れば1つのリポジトリで無限に非公開gemがつくれる(例: blockgiven/gems)
    • ただし細かいアクセス制限ができない
    • 大量にブランチあると混乱する、プルリクが出しづらい、タグうつとき名前に困りそう
  • 課金してもOrganizationプランのプラチナムだと125リポジトリまでしか持てない

Secret Gist :secret:

GistでGemを公開する方法を使えばsecret gistで無料で無限に非公開gemがつくれる。
この場合次のような問題がある

  • ForkできるがPull Requestが出せない:arrow_heading_down:
  • URLが漏れると誰でも見れてしまう:free:
  • 上記の問題のためsecret gist:secret:のgemを使っているリポジトリを外部に公開できない:ng:

Bitbucket

Bitbucketでは無料で無制限のプライベートリポジトリが持てる。なので無料で無限に非公開gemがつくれる。
しかし次のような問題がある

  • GitHubではない
  • 無料プランでは:five:人チームまでしか使うことができない
    • 上位のプラン:moneybag:でも人数制限がある

GitLab/GitBucket/etc...

オープンソースで開発されているGitHubクローンを使えば無料で無制限のプライベートリポジトリが持てる。レビューなどもできる。なので無料で無限に非公開gemがつくれる。
しかし次のような問題がある

  • 無料ではない
    • サーバーの維持費
    • 人間が面倒を見る回数・時間の分だけ運用するのに費用がかかる
    • BitBucketの$200/month無制限と人件費を天秤にかけるとどちらが重いか⚖
19
18
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
18