RenovateでPrivate Packagistを使いたい
Renovateを使うときにPrivate Packagistのモジュールが混ざっているとき(具体的にはLaravel Nova)、ビルトが失敗してしまう
Private packagistのユーザとパスワードを指定していないため
どうすればいいか?
結論:https://github.com/renovatebot/config-help/issues/196#issuecomment-481810181
auth.jsonをcomposer.jsonと階層に置く必要がある?
DockerでRenovateを動かしているなら https://gitlab.com/momentumstudio/demo-composer/blob/master/.gitlab-ci.yml#L15 みたいにして秘匿情報を隠すことができるが……
Composer support: private packages · Issue #2354 · renovatebot/renovate
hostRuleというrenovateのconfigに入れると動くと言っている(たぶん)
https://docs.renovatebot.com/configuration-options/#hostrules
「secretをhostRuleにいれたくない!」というレスに対して
For the hosted app, users would encrypt the field with Renovate's public key so that it's unreadable to anyone but the bot.
https://github.com/renovatebot/renovate/issues/2354#issuecomment-429736003
どうやらパスワードの暗号化ができるらしい(ドキュメントにない……)
https://renovatebot.com/encrypt
npmのトークンはこれで暗号化しているっぽいがcomposerは謎
Private npm module support | Renovate Docs
composerのインストールの実装はこのあたりで、やっているようにみえない
renovate/lib/manager/composer at master · renovatebot/renovate
テストもこんな感じだし、キーがnpm決め打ちになっている
code:renovate.json
{
"encrypted": {
"npmToken": "hoge"
},
"hostRules": [
{
"domainName": "nova.laravel.com",
"username": "test@exapmle.com",
"password": "${NPM_TOKEN}"
}
]
}
当然これもダメ
できなくない?
EnvにhostRulesを定義できる
RENOVATE_HOST_RULES='[{"hostType":"maven","domainName":"somedomain.com","username":"someusername","password":"***********"}]'
fix: support hostRules in env by rarkins · Pull Request #4985 · renovatebot/renovate
が、GitHub Appsで環境変数を設定する方法がわからなかった
Actionsならできるが、Appsの記述は見つからなかった(情報募集中)