pypi 包装和秘密:为啥 github--intended .travis.yml 保存密码?
Posted
技术标签:
【中文标题】pypi 包装和秘密:为啥 github--intended .travis.yml 保存密码?【英文标题】:pypi packaging and secrets: why does a github--intended .travis.yml hold a password?pypi 包装和秘密:为什么 github--intended .travis.yml 保存密码? 【发布时间】:2019-12-21 10:17:35 【问题描述】:我一直明白秘密的第一条规则是你要让它们不受公共源代码控制。
所以,我正准备将一个新包上传到 pypi。
在 .travis.yml 我看到了:
deploy:
provider: pypi
distributions: sdist bdist_wheel
user: mysuser
password:
secure: PLEASE_REPLACE_ME
on:
tags: true
repo: myuser/pynoorm
condition: $TOXENV == py27
还不错,我想我忘了替换它。
但是...真正令人费解的部分是当我在 github 上选择 random .travis.yml 时,它有:
ANzomjrVPkzLO7MG9Zekl1Tz/Gxxx ... HmSQ3GRNPHMIRqf1xle+8/0IwDBuC/eTsOkit7WU1j9lgurCj8snXuTLUVEqf/SecAcLpmLrelRFvz//ZcOopIbwD66RJWT8pYGBH/L3MMIDFj1bIf0UIpXdBXgeTJhxW054+BhdFPGI66IvWU/kOlOcE606wqRqI9bdvop34OewJFnOQ9El...71dROWO4ETzz1wGXmO0dTVfCWMbqk7dT8OPft+tHsWWJqqeCEL3wj1uYEIYpCwLo9oSyVXwrhzRW0dysZfTCx/XfDaws3eFA6iMg6dUoBt12kwGZ5vCbgjBwPOmQrRMUEmYoyZz8n20HKojoxzUpwueFN/nbLv76arJbN8bLeb/GyE6r1Rw0DEzs8f0fBtv5agUnIpMh6EPOFYN4rwHMxt52HU7BB/Kg=
向您上传到 github 的文件添加 安全密码 有什么意义?它有什么作用?我认为通常的过程是登录 github,然后将您的帐户链接到 travis。在这种情况下,两个服务都应该知道如何对您进行身份验证,如果您登录其中之一,则无需通过公共设置文件中的密码。
github travis 配置的这个特定部分有多危险/敏感?
我可以不用它吗?
最初的 pypi 包文件是使用 CookieCutter cookiecutter-pypackage 生成的。
【问题讨论】:
【参考方案1】:存储库的 .travis.yml
文件可以具有“加密值”,例如环境变量、通知设置和部署 API 密钥。任何人都可以添加这些加密值,但只能由 Travis CI 读取。
这就是secure:
字段名称所指示的内容。将这些加密值包含在您的 .travis.yml
中是安全的,也可以安全地将它们上传到 Github。
您可以通过安装 travis
gem 并运行它来生成安全值:
$ gem install travis
$ travis encrypt "secretvalue"
<encrypted string>
【讨论】:
啊,啊。这就说得通了。虽然仍然不确定它的作用,但我觉得问这个问题有点?-ish。你有关于这个位的用途的信息吗?我可以省略吗? 这是你的 PyPI 密码。 Travis 需要它代表您上传一个包。以上是关于pypi 包装和秘密:为啥 github--intended .travis.yml 保存密码?的主要内容,如果未能解决你的问题,请参考以下文章