为find-links和download recipies添加http认证的Buildout扩展
项目描述
buildout 的 HTTP 插件
HTTP Basic 认证
使用此扩展,可以在不指定 URL 中的密码和用户的情况下定义受保护的包目录。
让我们以受保护的示例位置为例,http://www.example.com/dist
首先,我们需要添加扩展并找到受保护位置的链接
[buildout] find-links = http://www.example.com/dist extensions = lovely.buildouthttp
然后创建 .httpauth 密码文件,此文件包含所有认证信息。该 .httpauth 文件可以放在当前 buildout 的根目录中或在 ~/.buildout 目录中。每一行包含 realm, uri, username, password。
以下是 .httpauth 文件的示例
Example com realm, http://www.example.com, username, secret
也可以省略密钥。然后,每次运行 buildout 时都会提示您输入密钥。
Example com realm, http://www.example.com, username
请注意,基本认证也适用于使用 zc.buildout.download 的任何配方(例如 hexagonit.recipe.download),因为此扩展也覆盖了 zc.buildout 的 URL 打开器。
Github 私有下载
在 http://github.com/ 上的私有下载需要授权才能下载。基于 v2 API 的基于令牌的认证系统(参见 http://github.com/blog/170-token-authentication)自 2012 年 6 月 1 日起不再由 GitHub 支持;您现在必须请求 v3 API 令牌并使用该令牌。
可以使用 curl 在一行中请求新的 API 令牌(请替换您自己的 GitHub 用户名和密码)
- curl -s -X POST -d ‘{“scopes”: [“repo”], “note”: “my API token”}’
https://${user}:${pass}@api.github.com/authorizations | grep token
现在将 github.token 的值设置为上面命令返回的哈希值
git config –global github.accesstoken ${token}
请注意,v3 API 不需要您的 GitHub 用户名来工作,如果您愿意,可以从您的配置中删除。
有关管理 GitHub OAuth 令牌的详细信息,请参阅 API 文档:http://developer.github.com/v3/oauth/#oauth-authorizations-api
下载标签或分支的 URL
https://api.github.com/repos/<gituser>/<repos>/tarball/master
下载 “download” 的 URL
https://github.com/downloads/<gituser>/<repos>/<name>
由于 PyPi 上的某些 egg 也使用公共 GitHub 下载 URL,因此您可能希望将需要认证的仓库列入白名单,因为如果提供错误的认证详细信息,GitHub 将返回 401 错误代码,即使对于公共仓库也是如此。为此,只需在 buildout 配置 github-repos 中按行列出每个仓库,格式为 <gituser>/<repos>,每行一个。
[buildout] extensions = lovely.buildouthttp github-repos = lovelysystems/lovely.buildouthttp bitly/asyncmongo
致谢
感谢 Tarek Ziade、Kevin Williams 和 Wesley Mason 提供的错误修复和扩展。
lovely.buildouthttp 的更改
未发布
2015/01/14 0.6.1:
添加了对 zc.buildout 版本 >= 2.0.0 的支持(urlopener 的 monkey patch 已更改)
2014/12/12 0.6.0:
添加了对 python3 的兼容性
2013/08/06 0.5.0:
修复了与 setuptools 0.7 及更高版本兼容性问题。
2013/06/25 0.4.8:
不再丢弃 User-Agent 标头,因为 GitHub API 需要。
如果 .httpauth 文件中没有密码,则提示输入密码
2012/10/08 0.4.7:
还检查了 GitHub 下载的白名单(不仅限于 find-links)
更多测试
2012/09/21 0.4.6:
允许可选的 GitHub 仓库白名单(请参阅 README)
2012/06/21 0.4.5:
检测所有 github.com 域名
2012/06/20 0.4.4:
将 GitHub 认证调整为 api v3(请参阅 README.txt 获取更多信息)
2012/03/20 0.4.3:
修复了与更改的 GitHub 认证相关的问题。
2012/03/19 0.4.2:
- 修复了 GitHub 认证
根据 Petros Amiridis(GitHub 员工)的说法,“不再支持 POST 认证。”
2011/03/01 0.4.1:
从 .httpauth 中排除空行,这解决了问题 3。
2010/12/29 0.4.0:
允许在 buildout 自身中包含 .httpauth 文件。这增加了在 ~/.buildout/.httpauth 中设置的 realm。
2010/10/11 0.3.7:
修复bug:使git凭据在没有基本HTTP身份验证定义的情况下也能工作
2010/10/11 0.3.6:
添加了缺失的CHANGES.txt文件,这解决了安装问题
2010/10/09 0.3.5:
现在也为基于zc.buildout.download的配方添加了github下载凭据。这允许使用任何下载配方(如hexagonit.recipe.download)使用github私有下载URL
迁移到github http://github.com/lovelysystems/lovely.buildouthttp
2010/09/28 0.3.4:
修复了与Python 2.6+的兼容性问题。Python 2.6突然将失败的请求计数,但每个未授权的请求都算作一个,这导致buildout在单次运行中的每次第5次下载时失败。我在Windows上发现了这个问题,但Linux也可能失败。
2010/08/28 0.3.3:
修复了在0.3.2版本中引入的git命令中的拼写错误
2010/08/28 0.3.2:
静默忽略失败的git凭据查找
2010/05/28 0.3.1:
Python 2.4兼容性修复(感谢Godefroid Chapelle)
2010/05/27 0.3.0:
添加了对zc.buildout.download的支持,这允许各种下载配方与这个凭据扩展一起工作。需要至少zc.buildout版本1.5.0b2
2010/03/24 0.3.0a1
添加了github身份验证,现在可以从私有github存储库中下载
2009/09/22 0.2.3:
为安装程序添加了测试
修复了无法检索URL时的错误:AttributeError: 'NoneType'对象没有属性'url' [naro]
2008/03/22 0.2.2:
在重试部分周围添加了try/except,以防止奇特的URL
2007/12/08 0.2.1:
避免在领域错误或文件在不良领域时发生错误,以及其他一些控制。感谢Tarek Ziade。
2007/08/06 0.2.0a1
如果存在处理器,则不要覆盖处理器。(例如,在paramiko中)感谢Aaron Lehmann
2007/07/23 0.1.0a3
向setup.py添加信息,迁移到cheeseshop
2007/06/21 0.1.0a2
记录下载失败
修复了许可证头
在调试模式下记录连接
2007/06/14 0.1.0a1
初始发布
下载
项目详情
lovely.buildouthttp-0.6.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 5c3bc5be6073b64929d19e12f1fa0712a431e5f10208f4515fbb9d8c76e380f5 |
|
MD5 | f473f060aeb29ef5b025b9f4510fbec7 |
|
BLAKE2b-256 | da7f273d6d7fa0dd8f170fb6985887528bee7006a4a596341d073b42421e02ba |