プライベートPyPIリポジトリがあります。 pip.conf
に似た.pypirc
に資格情報を保存する方法はありますか?
私が意味したのは。現在、.pypirc
でこのような設定を行うことができます:
[distutils]
index-servers = custom
[custom]
repository: https://pypi.example.com
username: johndoe
password: changeme
あなたがpip.conf
に入れることができると私が見つけたものから:
[global]
index = https://username:[email protected]/pypi
index-url = https://username:[email protected]/simple
cert = /etc/ssl/certs/ca-certificates.crt
しかし、ここには2つの問題があります。
URLの外にユーザー名とパスワードを保存する方法はありますか?
次のように、~/.netrc
で使用するPipの資格情報を保存できます。
machine pypi.example.com
login johndoe
password changeme
Pipはhttps://pypi.example.com
にアクセスするときにこれらの資格情報を使用しますが、ログに記録しません。インデックスサーバーを個別に指定する必要があります(質問のpip.conf
など)。
~/.netrc
はpip
を実行するユーザーが所有する必要があることに注意してください。他のユーザーも読み取り可能ではなりません。無効なファイルは黙って無視されます。次のように権限が正しいことを確認できます。
chown $USER ~/.netrc
chmod 0600 ~/.netrc
この許可チェックは、Python 3.4より前には適用されませんが、いずれにしても良い考えです。
内部的に、PipはHTTPリクエストを行うときに requests を使用します。要求は、標準ライブラリ netrc モジュールを使用してファイルを読み取るため、文字セットはASCIIサブセットに制限されます。
ユーザー名/パスワードを環境変数として保存する方法、
export username=username
export password=password
そして、次のようにpip.confでそれらを参照します。
[global]
index = https://$username:[email protected]/pypi
index-url = https://$username:[email protected]/simple
cert = /etc/ssl/certs/ca-certificates.crt
Gitlab CIの秘密変数を使用して資格情報を保存します。 CIツールで同等のものを確認してください。