从github中提取与测试相关的提交信息

githubinfo的Python项目详细描述


团队的Github测试提交报告

https://travis-ci.org/nens/githubinfo.png?branch=master

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>
验证
用户名/密码列表。当你需要访问一些私人 项目。注意,当您 已登录。
要报告的天数。默认为一周。
组织
要查询的GitHub组织或个人帐户的列表。这就是 github.com之后的第一部分 https://github.com/organization/project
额外项目

列表的可选列表。为了那些少数人 一个或多个同事 做很多对你来说很重要的工作。我在列出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 。或者,更好的是,试着把它修好 拉取请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用单独的类从Get和Set方法获取值   将表从MySql导入配置单元时发生java MySql权限错误   安卓 JAVA按降序排序JSONObject(String,Int)   p:pdataTable/p:dataGrid/ui:repeat中的JavaP:commandButton不调用方法   用于服务器和客户端包的Java项目中的共享资源   哪些版本的Android SDK支持在哪些版本的Java中编码?   java如何使用selenium检查登录表单中的成功和失败消息?   eclipse如何重命名Java应用程序的名称空间/路径   安卓 java。你需要使用一个主题。此活动的AppCompat主题(或子代)   使用eclipse WindowBuilder和JCAJCE方法的java问题   java中的Documentum API