用于以集体方式管理GitHub组织的脚本
项目描述
简介
GitHub组织 是组织管理Git存储库的绝佳方式。此工具可让您自动化创建团队、授予权限和创建存储库或修改其设置的繁琐任务。
github-collective 工具采用的方法是您编辑一个中央配置(目前是一个类似ini的文件),从该文件读取选项,并分别同步到GitHub。
最初,此脚本的目的是管理Plone的集体GitHub组织:http://collective.github.com。它目前在其他几个位置使用。
文档
请访问http://github-collective.rtfd.org阅读完整文档。
特性
创建一个中心配置,您可以将它同步到GitHub以配置组织的设置、仓库、团队等。
结合GitHub的分支和拉取请求模型,轻松允许非管理员用户以最小的开销创建和管理仓库。
仓库:在组织内部创建和修改仓库
根据GitHub Repos API配置所有仓库属性,包括隐私(公开/私有)、描述和其他元数据。
初始仓库创建后,配置中的更新值将替换GitHub上的那些值。
服务钩子:添加和修改仓库的服务钩子。
GitHub仓库支持在发生某些事件时发送信息(例如,向仓库推送或分支被拉取)。
初始仓库创建过程完成后,钩子配置中的更新值将替换GitHub上的那些值。
配置中不存在(例如,在GitHub上手动添加或在本地配置中删除)的钩子将不会被删除。
团队:自动创建团队和修改成员
控制团队的权限(例如:推送、拉取或管理员)
当运行工具时,将自动同步所有这些设置到GitHub。
使用形式为${section:option}的Buildout样式变量替换。
用法
安装github-collective后,它应该在您的bin目录中创建一个同名的可执行文件。
% bin/github-collective --help usage: github-collective [-h] -c CONFIG [-M MAILER] [-C CACHE] -o GITHUB_ORG -u GITHUB_USERNAME -P GITHUB_PASSWORD [-v] [-p] This tool will let you automate tedious tasks of creating teams granting permission and creating repositories. optional arguments: -h, --help show this help message and exit -c CONFIG, --config CONFIG path to configuration file (could also be remote location). eg. http://collective.github.com/permissions.cfg (default: None) -M MAILER, --mailer MAILER TODO (default: None) -C CACHE, --cache CACHE path to file where to cache results from github. (default: None) -o GITHUB_ORG, --github-org GITHUB_ORG github organisation. (default: None) -u GITHUB_USERNAME, --github-username GITHUB_USERNAME github account username. (default: None) -P GITHUB_PASSWORD, --github-password GITHUB_PASSWORD github account password. (default: None) -v, --verbose -p, --pretend
本地存储的配置
% bin/github-collective \ -c example.cfg \ # path to configuration file -o vim-addons \ # organization that we are -u garbas \ # account that has management right for organization -P PASSWORD # account password
远程存储的配置(GitHub)
% bin/github-collective \ -c https://raw.github.com/collective/github-collective/master/example.cfg \ # url to configuration file -o collective \ # organization that we are -u garbas \ # account that has management right for organization -P PASSWORD # account password
缓存配置
% bin/github-collective \ -c https://raw.github.com/collective/github-collective/master/example.cfg \ # url to configuration file -C .cache # file where store and read cached results from github -o collective \ # organization that we are -u garbas \ # account that has management right for organization -P PASSWORD # account password
测试
nose用于测试,并且在此项目的setup.cfg文件中存在nose的配置。此配置自动检查项目中的测试文件,包括此read-me本身。您可以使用提供的Buildout配置初始化和运行测试
git clone git://github.com/collective/github-collective.git cd github-collective virtualenv . python boostrap.py bin/buildout bin/nosetests
tox用于确保此软件包在每种Python版本下都能正确安装。目前我们测试了Python 2.6和Python 2.7。支持在tox下运行测试将在不久的将来提供。要测试安装
git clone git://github.com/collective/github-collective.git cd github-collective virtualenv . pip install tox tox
问题和贡献
通过此项目的GitHub问题跟踪器https://github.com/collective/github-collective/issues报告问题。
通过在GitHub上提交拉取请求或通过添加自己到Collective并直接贡献来贡献。
待办事项
通过API配置组织设置
添加错误发生时继续的功能
向所有者发送关于删除仓库的电子邮件
更好的日志记录机制(例如,logbook)
支持配置扩展性(例如,extends =语法)以使用多个配置文件。
致谢
- 作者:
Rok Garbas(garbas)
- 贡献者:
David Beitey(davidjb)
变更日志
0.4 (2012-11-28)
在意外API更改后恢复将仓库分支到组织的能力。[davidjb]
确保将分支数据负载(组织名称)以JSON格式发送。[davidjb]
允许创建后正确命名分支。GitHub的API使用原始名称进行分支,因此我们需要在分支后重命名。[davidjb]
向同步模块添加重命名辅助功能。(注意配置尚不支持重命名)[davidjb]
Read the Docs-化的文档。[davidjb]
0.3.2 (2012-07-17)
修复钩子变量的模板问题。之前,原始配置正在被修改,防止了进一步的模板化。[davidjb]
修复由于存储现有整数ID而导致钩子从缓存中更新的问题。[davidjb]
修复在仓库更改时缓存未更新的问题。[davidjb]
0.3.1 (2012-07-17)
仅向GitHub发送API选项以减少开销。[davidjb]
在详细模式下运行时显示配置更改的输出。这有助于追踪GitHub值存储的异常,以减少开销。[davidjb]
0.3 (2012-07-17)
实现Buildout样式的变量替换以进行配置和doctesting。[davidjb]
在详细模式下运行时输出已解析的配置。[davidjb]
现在GitHub API v3支持删除仓库,因此实现从配置中删除仓库。**警告**:如果GitHub上存在但不在您的配置中的仓库,现在将被删除。如果不清楚,请首先以模拟模式运行命令。[davidjb]
优化删除过程,以尝试删除时不清除缓存。[davidjb]
为测试添加extras_require选项以使用nose。[davidjb]
更新为依赖requests==0.13.1。[davidjb]
0.2 (2012-06-22)
允许在配置中指定服务钩子。有关示例,请参阅示例配置。任何GitHub支持的钩子都可以与仓库关联。[davidjb]
允许在创建和编辑配置时设置仓库属性。有关可用选项,请参阅http://developer.github.com/v3/repos/#create。这提供了创建私有仓库(如果可用配额)等其他选项。[davidjb]
修复创建团队时的响应解析问题。[davidjb]
改进了最终用户文档。[davidjb]
0.1.4 - 2012-02-19
添加对requests==0.10.2的支持,并删除pdb [f561d79, garbas]
0.1.3 - 2011-07-09
修复缓存文件错误,缓存现在工作正常[garbas]
0.1.2 - 2011-07-03
0.1.1 - 2011-07-02
并且我们进行了第一次错误修复发布,在重构和合并enable-cache分支之后。[a09d174, garbas]
0.1 - 2011-07-02
初始发布[garbas]
项目详情
github-collective-0.4.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 24288e2b5dff5fa1d5909a917cd0343ceaa8c68d358cfa142a0f93547379864b |
|
MD5 | 79a99297df35a5085df36844306bb8df |
|
BLAKE2b-256 | fb38975fd993c487ea7d937555ed9a6a710d61a1ecedbfffa9bfb80d522d9cc3 |