从github中提取与测试相关的提交信息
githubinfo的Python项目详细描述
团队的Github测试提交报告
githubinfo是查询一个或多个github api的脚本 组织并向您快速报告 上周的测试。
当然,它是可调整的,这是必要的,因为我提出了一些公司违约 在那里:—)
它只是一个简单的命令,输出如下:
$ testcommitinfo loading project neerslagradar-site loading project ... ... We want more and better testing. For a quick and dirty quantity indication ('more'), here are the commits that have the string 'test' in of of the commit's touched filenames. Period: 8 days. Github organizations that I queried: ddsc, lizardsystem, nens Projects sorted by amount of commits with tests ----------------------------------------------- lizard-neerslagradar: 11 (25%) lizard-progress: 3 (9%) radar: 1 (33%) ... Committers sorted by amount of commits with tests ------------------------------------------------- Reinout van Rees: 12 (11%) Remco Gerlich: 3 (6%) Arjan Verkerk: 2 (8%) ...
您可以通过 -h 或 --help 获取使用信息,例如 如何提高日志级别或如何获取版本号。
目标
我写这篇文章是因为我们想在nelen&;上改进我们的开发过程。 舒尔曼。我们想要更多的测试。所以我 编写脚本:
- 它为一个或多个组织(或个人)查询github api 帐户)。
- 它在上周询问那里的项目 (可配置)。
- 对于每一次提交,只需查看提交中是否有文件名 在其完整路径中测试 。如果是,提交将被视为"测试提交"。
- 对于每个项目,它计算提交的次数和测试的次数 承诺。
- 每个提交者都一样。
最后,您将得到一个按 提交.
风险:你得到你所测量的值
这个指标不完整,不精确。开始抓人的人 当有人提到"代码覆盖"时,他们的火把和干草叉就会启动 抓住他们。我的回答是:滚开。
- 你确定了那些从不费心测试的同事。你要接受教育 他们。我能借一下那个干草叉吗?
- 您可以确定质量有所提高的项目。
- 你确定了那些明显受到截止日期影响的项目 如果你必须自己使用它们,以后可能会咬你。
- 如果你和同事一起工作,你会发现他们为你的项目带来了质量 它们。
有很多事情你无法衡量。但是一个不介意的人 使用测试也不会在测试中添加白线 文件以获得至少一些记入其姓名的测试提交:—)
配置
以下是默认设置,显然非常以我的公司为中心:
SETTINGS = { 'auth': None, # Set it to ['username', 'very_secret']. 'days': 7, 'organizations': [ 'ddsc', 'lizardsystem', 'nens', ], 'extra_projects': [ # ('organization', 'project'), ('reinout', 'buildout'), ('reinout', 'django-rest-framework'), ('reinout', 'serverinfo'), ('reinout', 'z3c.dependencychecker'), ('rvanlaar', 'djangorecipe'), ('zestsoftware', 'zest.releaser'), ], }
要自定义它,请在工作中添加一个 settings.json 文件 目录。你放进去的任何东西都用来覆盖默认值 设置 字典。确保它是正确的json格式,因此 字符串周围有双引号。像这样:
{"auth": ["reinout", "nogal_geheim"], "days": 8, "organizations": ["lizardsystem"], "extra_projects": []}< DL>
列表的可选列表。为了那些少数人 一个或多个同事 做很多对你来说很重要的工作。我在列出zc.buildout 例如,这里还有Zest.Releaser。
注意,只有提交者致力于你自己的组织 算上这些额外的项目。这样名单就不会被污染。
要验证您的设置,您可以调用 testcommitinfo --show config 将在testcommitinfo看到时打印配置。
与您自己的系统集成
也许您想在某个仪表板中包含输出?或者你想 用它生成一个好的html?
对于这些用例,您可以导出一个json文件和收集的项目 用户信息。使用命令行传递json文件名 选项,您将拥有所需的一切。
有问题吗?
有时github api会间歇性地失败。有一些"试一试" time"代码中的if/else可以解决大多数问题。每一次我 发现另一个问题,我会添加一些代码来解决它。
所以如果你有问题,你可以试着再运行一次,大多数 通常情况下,这样做很好。
如果你有一个真正的bug,你可以让我(reinout @vanrees org)来看看。或者,最好提交一个关于 https://github.com/nens/githubinfo/issues 。或者,更好的是,试着把它修好 拉取请求。