gpt4 book ai didi

c# - 拒绝为 C# (Unity) 推送基于 Git 提交代码的样式检查?

转载 作者:太空狗 更新时间:2023-10-29 14:31:12 25 4
gpt4 key购买 nike

我正在尝试为我的工作流程引入更多的持续集成。一个挑战是找到一个与 Git 和 Github 良好集成的样式检查器。理想情况下,如果我的样式检查器发现我的代码有任何问题,我希望我的提交被拒绝。

有许多适用于 C# 和 Visual Studio 的样式检查器,如 StyleCop、Resharper、FxCop,但我一直无法获得任何这些工具来在拒绝提交的级别上强制执行检查。我也研究过 pre-commit Hook ,但真的不知道从哪里开始让 git 调用这些工具。

任何关于我可以用来设置它的系统的建议都会很棒。

最佳答案

这里是建立这样一个系统的建议。

要拒绝推送,您需要设置 Git server-side hook ,特别是预接收 Hook 。

特别是在 GitHub 上,我认为你需要 GitHub enterprise set-up a pre-receive hook to enforce policy .作为this post解释:

For obvious reasons, GitHub won’t allow you to execute arbitrary code on their servers as part of Git hooks. The only hooking they allow is through their webhooks or the integrated third-party services. If you need to run some custom code, you will have to host that somewhere and set up a webhook to run it on your own server.

现在,您需要在服务器端 Hook 上运行样式检查器。理想情况下,为了便于通过脚本运行它,样式检查器需要能够从命令行运行。

例如,参见 ReSharper's InspectCode command line tool .您可以让服务器端 Hook 自动运行 InspectCode,并相应地处理输出以确定代码是否符合您的样式设置。

(这听起来有点单调乏味,需要 GitHub Enterprise 可能对您来说不是个开始。)

或者,您可以为此设置一个 git 预提交 Hook 。 (缺点是它需要在每台机器上手动安装预提交 Hook ,并且服务器端没有强制执行任何操作。)参见 this related post有关如何设置预提交 Hook 的详细信息。例如,您可以设置一个预提交 Hook 来运行 ReSharper 的 InspectCode,并在发现任何代码检查时停止提交。另外,this related post对此主题有一些类似的建议。

作为旁注,也许还有其他实践可以实现您想要的。您可以将编码风格检查作为 pull 请求和代码审查工作流程的一部分,这样如果代码不满足您团队的编码标准,就不会被 merge 。与您的团队就编码风格进行讨论并(重新)保持一致也可能是合适的。

关于c# - 拒绝为 C# (Unity) 推送基于 Git 提交代码的样式检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49611618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com