BuildOut扩展,允许从私有GitHub存储库下载到BuildOut查找链接和下载菜谱
githubbuildout的Python项目详细描述
从github构建
github已经成为软件工程团队常用的scm工具。 此构建扩展的目的是启用源代码的检索 通过使用APIv3的 基于令牌的身份验证,结合一些url重写来检索 需要时使用API服务器而不是主网站的文件。
有关安装和使用说明,请参阅以下各节。
请求API密钥
在可以从此模块访问专用存储库之前,必须创建 并在运行buildout的每个系统上存储一个api密钥。不像v2 api 为每个用户颁发了一个密钥,您可以创建任意多个密钥, 随意撤销。
api密钥绑定到单个用户帐户。
您可以使用curl创建api v3密钥(请替换您自己的github 用户名:
curl -s -X POST -d '{"scopes": ["repo"]}' -u ${user} \ https://api.github.com/authorizations | grep token
重要提示:必须指定scopes属性以确保对 私有存储库;保留作用域为空提供对 公共数据。
如果您计划将多个密钥分发到不同的系统(例如 自动化构建环境),您可能希望包含 以后能够区分它们:
curl -s -X POST -d '{"note": "build001.mydomain.ext", "scopes": ["repo"]}' \ -u ${user} https://api.github.com/authorizations | grep token
在git config中存储api密钥
现在将github.accesstoken的值配置为从 上面的命令:
git config --global github.accesstoken ${token}
有关管理授权github的oauth令牌的详细信息,请参见api 文档:http://developer.github.com/v3/oauth/#oauth-authorizations-api
github存储库下载
你可以指示buildout从你的 通过指定与您在浏览器中使用的相同的url来存储库 使用以下语法检索:
https://github.com/${user}/${project}/${archivetype}/${refid}
重要提示:url必须使用要检索的https协议 使用此扩展;将忽略使用http协议的url。
实际上,您通常会使用这个来检索 在构建文件中以egg的形式安装,使用类似的方法:
[buildout] find-links = https://github.com/me/myproject/tarball/master#egg=myproject eggs = myproject parts = myproject [myproject] unzip = true recipe = zc.recipe.egg path = myproject
注意:这些url将在检索期间重写,以使用api v3 url代替。 如果愿意,可以显式指定用于检索文件的api服务器url:
https://api.github.com/repo/me/myproject/tarball/master
github静态下载(不推荐)
重要提示:github不支持静态下载 从2012年12月11日起,将在“90天内”(2013年3月11日当天或前后)移除。 如果您的项目依赖于此功能,那么现在是制作 备用计划。有关详细信息,请参见下面的链接:
https://github.com/blog/1302-goodbye-uploads
以前上载到github项目的静态下载 也可以使用您在浏览器中使用的相同URL检索, 形式如下:
https://github.com/downloads/${user}/${project}/${filename}
重要提示:与存储库下载一样,url必须使用 https要检索的协议。
因为这些文件可以包含静态的软件版本,比如鸡蛋或任何东西 否则您需要(媒体文件、配置数据等),这取决于您如何 在构建中使用它们;一个常见的模式是将它们作为一个部分安装 以类似于以下示例的方式:
[buildout] parts = mypart [mypart] recipe = hexagonit.recipe.download url = https://github.com/downloads/me/myproject/myfile.tar.gz
学分
感谢伯纳德·多恩、于尔根·卡尔特纳、伯纳德·罗斯尔和其他可爱的 用于lovely.buildouthttp的系统(此项目基于此),以及 Clayton Parker和Tarek Ziade的错误修复和扩展。
对githubbuildout的更改
2013年4月25日0.2:
- 声明用户代理以符合github的新api要求(请参见 http://developer.github.com/changes/2013-04-24-user-agent-required/): githubbuildout/$version zc.buildout
2012年6月21日0.1:
- 初始版本(基于可爱的.buildouthttp)