Brew-fileのファイル管理様のレポジトリにGitHubのPrivateレポジトリを 指定しようとするとチェック時にレポジトリが無いと言って作成しようとして 失敗しセットできない状態でした。
これをPrivateレポジトリでもそのままセットできる様にしました。
GitHubのプライベートレポジトリ
最近までGitHubのプライベートレポジトリは有料で Gitのプライベートレポジトリを無料で使いたい場合には Bitbucketなどを使う必要がありました。
しかし今年の1月からGitHubでも無料でプライベートレポジトリが作れる様になりました。
このプライベートレポジトリですが、見る権限の無いユーザーがブラウザから開こうとすると
403 Forbidden
とかではなく、単に404 Not found
のエラーが返る様になっています。
Brew-fileでGitHubプライベートレポジトリを使う
Brew-fileの中でBrewfile管理用のGitHubのレポジトリをチェックする際に 該当のURLを開いてみて存在するかどうか、というチェックを行っていました。
単にHTTPErrorを見てチェックしていただけだったので、
Error内容を細かく見ればプライベートレポジトリを区分けられるかな、と思ったのですが
上に書いたように権限がないと単に404 Not found
になるので上手くいきません。
なので単にCloneを試して失敗したら作成する、というような変更を行いました。
Support private repositories in brew set_repo · Issue #84 · rcmdnk/homebrew-file
Pull Requestが来たので。
以前は自分でPrivateレポジトリを持てなかったのでそもそも気にしてませんでしたが、 プライベートレポジトリが無料になった今、Brewfileを公開せずにGitHubで管理したい、 というケースも多いと思うので早速。
その他細かいアップデート
Git(GitHub)ユーザー名の自動取得
これまでレポジトリの指定にはGitHubの場合で<user>/<repository>
の様に指定する必要がありましたが、
今後は.gitconfigにgithub.user
かまたはuser.name
が設定されていれば<repository>
だけでも
レポジトリを指定できるようにしました。
ローカルレポジトリの使用
これまでも一応対応しているつもりでしたが、 うまくいかない場合があったり、レポジトリがない場合は終了するような状態になってました。
$ brew file set_repo --repo /tmp/Brewfile
とかやると、(なければ)/tmp/Brewfileにディレクトリを作ってそこでgit init --bare
して
そのレポジトリをクローンするような事をします。