Composerのリポジトリは簡単な認証であれば設定できるようになっている。基本的に$(composer config -g cache-dir)/auth.json
に記載していくが、configコマンドでも設定が可能。
すべてドメインごとに設定できる。
Basic認証
なんかconfigコマンドに渡すhttp-basic.という部分がドメインの一部っぽく見えるが関係なくて、http-basic.
まではJSON記法、それ以降がドメインを指す。(http-basic[example.com]みたいな記法だったら分かりやすかったのに。。)
たとえばexample.comに対してユーザー名:aribaba パスワード:opensesameが必要だったとしたらこんな感じ。
# set
$ composer config -g http-basic.example.com aribaba opensesame
# unset
$ composer config -g --unset http-basic.example.com
# list
$ composer config -g http-basic
↓詳しくは
https://getcomposer.org/doc/articles/http-basic-authentication.md
GitHub
githubの場合は個人または組織アカウントで払いだしたアクセストークンを使う。
privateリポジトリにアクセスする場合はその権限があるアクセストークンが必要。(repoあたりにチェックを入れて作る)
単にIP制限を緩和したいだけであれば、全く権限のついていないアクセストークンでもOK。
これもgithub-oauth.
までがJSON記法で、その後ろが設定対象のドメインである。
# set
$ composer config -g github-oauth.github.com xxxxxxx
# unset
$ composer config -g --unset github-oauth.github.com
# list
$ composer config -g github-oauth
GitHub Enterpriseの場合
上記設定はgithub.com以外でもドメインごとに設定できる。つまりGitHub Enterpriseでも使える。ただしcomposerからすればそのドメインがGitHub互換の動きをしているかはわからないため、github-domainsに追加しておく必要がある。
configコマンドだとスペース区切りで、しかもgithub.comは省略できないのでなんか微妙。。
# set
$ composer config -g github-domains github.com git.example.com ...
# unset
$ composer config -g --unset github-domains
# list
$ composer config -g github-domains
GitLab
詳しく知らないけど、githubと同様にアクセストークンを設定できるっぽい。コマンドだけ羅列しておく。
ドメインはgitlab-domainsにセットする。
# set
$ composer config -g gitlab-domains gitlab.com git.example.com ...
# unset
$ composer config -g --unset gitlab-domains
# list
$ composer config -g gitlab-domains
トークンはgitlab-oauthにセットする。
# set
$ composer config -g gitlab-oauth.git.example.com xxxxxxx
# unset
$ composer config -g --unset gitlab-oauth.git.example.com
# list
$ composer config -g gitlab-oauth
BitBucket/Stash
これもよく知らないけど、bitbucket-oauthで設定できるみたい。ドメインごとに設定できるので、たぶんStashと組み合わせて使えるんじゃないか。
これらはConsumerKey/ConsumerSecretの組で払い出すので、設定が2つになる。
# set
$ composer config -g bitbucket-oauth.bitbucket.org CONSUMERKEY SECRET
# unset
$ composer config -g --unset bitbucket-oauth.bitbucket.org
# list
$ composer config -g bitbucket-oauth
これらは実際には普通のBasic認証のuser/passとして使えるため、特にドメインを設定する必要はなさそう。