在 Github 提交中强制执行 PEP-8'ish 格式

2024-05-06

是否有任何预制解决方案可以在 Git 提交挂钩中强制执行良好的 Python 标准?

有没有办法在本地结帐中自动执行此过程(类似于 Bazaar,可以将提交挂钩推送给客户端)?当您签出存储库时,它会安装提交挂钩,这应该足够了,无需运行进一步的工作/命令。

例如。如果您的 .py 文件有一个选项卡,则提交将中止,并且会发送一个 droid 来惩罚开发人员。


2020 年更新:

8年后,你会使用GitHub 操作 https://github.com/features/actions, like github/super-linter https://github.com/github/super-linter.
我在“如何为新用户在 GitHub 中设置操作? https://stackoverflow.com/a/62458603/6309".


原答案2012年

您可以在 GitHub 端添加服务(请参阅“GitHub - 所有的 Hooks https://github.com/blog/964-all-of-the-hooks”,以及现有第三方服务 https://github.com/github/github-services/tree/master/services).

但你不能“推钩”(参见“为什么不能 git add .git/hooks/my-hook https://stackoverflow.com/a/5165299/6309" or "Git 远程/共享预提交挂钩 https://stackoverflow.com/a/3703207/6309".

您可以对用作钩子的脚本进行版本控制,但每个客户端仍然需要激活其预提交钩子(使用指向该版本化脚本的符号链接)。

此类版本化脚本(针对 Python 标准)的示例在此可见博客文章 http://lbolla.info/blog/2011/11/17/git-pre-commit-hook-for-python-and-javascript/, by 洛伦佐·博拉 http://lbolla.info/blog/me/,并在此更新GitHub 仓库 https://github.com/lbolla/dotfiles/blob/master/githooks/pre-commit.
它是基于PyLint http://www.logilab.org/857 and PyFlake http://pypi.python.org/pypi/pyflakes(也可以看看 ”PyLint、PyChecker 还是 PyFlakes? https://stackoverflow.com/questions/1428872/pylint-pychecker-or-pyflakes").


OP 在评论中提到包 vvv 0.1 http://pypi.python.org/pypi/vvv

用于软件源代码验证和 linting 的便捷实用程序

VVV是一个可以轻松验证和检查软件项目集成的工具。
使用单个命令,无论使用哪种编程语言,都可以根据您在简单配置文件中指定的策略验证源树中的所有文件。
VVV防止在软件源代码控制中出现不良内容或使清理变得更容易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Github 提交中强制执行 PEP-8'ish 格式 的相关文章

随机推荐