Gemfury | gemfury gem で Gemfury のリポジトリをコマンドライン経由でサクサク操作する #gemfury
概要
Private な gem を管理できるクラウドパッケージリポジトリの Gemfury を支援する
CLI ツール gemfury gem について。
インストール
$ gem install gemfury
Commands
help [COMMAND]
$ fury help
Commands:
fury help [COMMAND] # Describe available commands or one ...
fury list # List your packages
fury logout # Remove Gemfury credentials
fury migrate DIR # Upload all packages within a directory
fury push FILE # Upload a new version of a package
fury sharing # List collaborators
fury sharing:add EMAIL # Add a collaborator
fury sharing:remove EMAIL # Remove a collaborator
fury versions NAME # List all the package versions
fury whoami # Show current user
fury yank NAME -v, --version=VERSION # Delete a package version
Options:
[--as=AS] # Access an account other than your own
$ fury help list
Usage:
fury list
Options:
[--as=AS] # Access an account other than your own
List your packages
list
gem の一覧を取得
$ fury list
Please enter your Gemfury credentials.
Email: your_mail
Password: your_pass
*** GEMFURY PACKAGES ***
gottani (0.0.3)
ruboty-gemfury_test (0.0.1)
logout
他の要ログインのコマンド実行後は、ログインしたままになるので
一度ログアウトしたい場合に利用。
(別ユーザーで処理したい、など。)
$ fury logout
Are you sure you want to log out? [yN] y
You have been logged out
migrate
指定ディレクトリ配下の全ての gem を一斉にリリースする
aun gem と orenono gem を gemfury ディレクトリに clone して、
それを migrate してみます。
$ mkdir gemfury
$ cd gemfury
$ git clone https://github.com/tbpgr/aun.git
$ cd aun
$ rake build
$ cd ../
$ git clone https://github.com/tbpgr/orenono.git
$ cd orenono
$ rake build
$ cd ../
$ cd ../../
$ fury migrate gemfury/
Found the following packages:
aun-0.0.2.gem
orenono-0.0.3.gem
Upload these files to Gemfury? [yN] y
Uploading aun-0.0.2.gem - done
Uploading orenono-0.0.3.gem - done
アップード成功
push FILE
$ fury list
*** GEMFURY PACKAGES ***
gottani (0.0.3)
orenono (0.0.3)
ruboty-gemfury_test (0.0.1)
$ fury push ./pkg/aun-0.0.2.gem
Uploading aun-0.0.2.gem - done
$ fury list
*** GEMFURY PACKAGES ***
aun (0.0.2)
gottani (0.0.3)
orenono (0.0.3)
ruboty-gemfury_test (0.0.1)
sharing
Collaborators のリストを返却する
$ fury sharing
*** Collaborators for "xxxx" ***
user1
user2
user3
user4
sharing:remove EMAIL
任意の Collaborator を削除する
help では EMAIL になっているが、 USERNAME じゃないと動かない。(version 0.4.25)
しかし、GitHub の履歴を確認すると以前 USERNAME だったものを EMAIL に変えている。
help のコメントだけ先に変更したけど、処理は完成していないとうことだろうか?
公式ドキュメント は USERNAME のまま。
fury help sharing:add
・ fury help sharing:remove
の表示だけが実際の動作と異なる。
ヨクワカラナイ。
$ fury sharing
*** Collaborators for "xxxx" ***
user1
user2
user3
user4
# ヘルプ通りに EMAIL を指定すると動かない・・・
$ fury sharing:remove user4@some_address
Oops! Doesn't look like this exists
# ヘルプを無視して USERNAME を指定したら動いた
$ fury sharing:remove user4
Removed user4 as a collaborator
# 削除されたことを確認
$ fury sharing
*** Collaborators for "xxxx" ***
user1
user2
user3
sharing:add EMAIL
任意の Collaborator を追加する
※ fury sharing:remove
と同様、 EMAIL ではなく USERNAME を利用しなければ動作しなかった
$ fury sharing
user1
user2
user3
$ fury sharing:add user4
Invited user4 as a collaborator
$ fury sharing
user1
user2
user3
user4
version
version を表示
$ fury version
0.4.25
versions [NAME]
NAME の gem のバージョンを一覧取得
$ fury versions gottani
*** Gottani Versions ***
0.0.3
0.0.2
whoami
login 中のユーザー名を表示する
$ fury whoami
You are logged in as "user1"
yank NAME -v, --version=VERSION
NAME の gem を gemfury から削除する。
version 指定も可能。
$ fury list
*** GEMFURY PACKAGES ***
aun (0.0.2)
gottani (0.0.3)
orenono (0.0.3)
ruboty-gemfury_test (0.0.1)
$ fury yank aun -v 0.0.2
*** Yanked aun-0.0.2 ***
$ fury list
*** GEMFURY PACKAGES ***
gottani (0.0.3)
orenono (0.0.3)
ruboty-gemfury_test (0.0.1)
補足
- gemfury gem は内部で thor を使っている模様