如何为位于GIthub中的存储库强制执行Coding Standard

时间:2012-10-18 12:48:37

标签: git github hook pre-commit-hook

我们在Github有一个帐户,并在Github(私人存储库)中托管我们的所有项目。

我们希望强制执行编码标准以及我们用于内部目的的其他钩子。我们已经将这些钩子用于颠覆,因为存储库位于一个地方,管理这些钩子非常好。

使用Github,看起来我失去了在主存储库中添加钩子的能力(?),因此我很震惊:

  1. 如果每个成员将其文件推送到主存储库时,如何对每个成员强制执行编码标准?
  2. 在处理任何推送请求之前,Github上有没有办法执行我的钩子是我的服务器?
  3. 我正在寻找让我的生活更轻松的想法/建议,非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我认为这不是VCS的工作。问题在于,有助于实施编码标准的工具通常与源有关,有时与二进制文件一起使用。例如,在Java中,checkstyle可以在源代码上运行,但是findbugs需要源代码+编译代码。 但据我所知,在补丁上运行此类工具效果不够。这些工具需要上下文。

所以我建议创建一个像Jenkins这样的持续集成服务器的实例,如果有新的更改,编译并运行静态分析工具,请将结果代码从Github中获取,构建的结果应该发送给所有团队成员。它不仅会为您提供有关正确编码的推送更改的反馈,而且如果代码从构建角度立即稳定,也会提供有益的反馈。

答案 1 :(得分:0)

就像Eugene说的那样,我不确定这是否真的是VCS的任务。 (但可能有一个地方可以挂钩)。

既然你正在使用Github,你熟悉Commit Status API吗?这样你就可以设置一个服务(比如Jenkins),它会自动检查编码风格,例如运行单元测试,这样你就可以看到拉取请求是“干净”还是“安全”。

相关问题