跳转到主要内容

为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:

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 (13.3 kB 查看散列)

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面