pypi 包装和秘密:为什么 github--intended .travis.yml 持有密码?

pypi packaging and secrets: why does a github--intended .travis.yml hold a password?

我一直都明白秘密的第一条规则是让它们远离 public 源代码控制。

所以,我正准备将新包上传到 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 上随机选择 .travis.yml 并且它有:

ANzomjrVPkzLO7MG9Zekl1Tz/Gxxx ... HmSQ3GRNPHMIRqf1xle+8/0IwDBuC/eTsOkit7WU1j9lgurCj8snXuTLUVEqf/SecAcLpmLrelRFvz//ZcOopIbwD66RJWT8pYGBH/L3MMIDFj1bIf0UIpXdBXgeTJhxW054+BhdFPGI66IvWU/kOlOcE606wqRqI9bdvop34OewJFnOQ9El...71dROWO4ETzz1wGXmO0dTVfCWMbqk7dT8OPft+tHsWWJqqeCEL3wj1uYEIYpCwLo9oSyVXwrhzRW0dysZfTCx/XfDaws3eFA6iMg6dUoBt12kwGZ5vCbgjBwPOmQrRMUEmYoyZz8n20HKojoxzUpwueFN/nbLv76arJbN8bLeb/GyE6r1Rw0DEzs8f0fBtv5agUnIpMh6EPOFYN4rwHMxt52HU7BB/Kg=

向要上传到 github 的文件添加 安全密码 有什么意义?它有什么作用?我认为通常的过程是登录 github 然后 link 你的帐户到 travis。在这种情况下,两种服务都应该知道如何对您进行身份验证,如果您登录了任一服务,则无需通过 public 设置文件中的密码。

dangerous/sensitive github travis 配置的这个特定部分如何?

我可以没有它吗?

最初的 pypi 包文件是用 CookieCutter cookiecutter-pypackage 生成的。

存储库的 .travis.yml 文件可以有 "encrypted values",例如环境变量、通知设置和部署 API 密钥。任何人都可以添加这些加密值,但只能由 Travis CI.

读取

这就是 secure: 字段名称所表示的。将这些加密值包含在您的 .travis.yml 中是安全的,将它们上传到 Github 也是安全的。

您可以通过安装 travis gem 和 运行 来生成安全值:

$ gem install travis
$ travis encrypt "secretvalue"
<encrypted string>