【问题标题】:Enforcing PEP-8'ish formatting in Github commits在 Github 提交中强制执行 PEP-8'ish 格式
【发布时间】:2012-04-05 15:39:34
【问题描述】:

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

有没有办法在本地结帐中自动化这个过程(类似于 Bazaar,可以将提交挂钩推送到客户端)?当你签出一个 repo 时,它会安装提交钩子就足够了,不需要运行更多的工作/命令。

例如如果您的 .py 文件有一个选项卡,则提交将中止,并发送一个机器人来打开发者。

【问题讨论】:

标签: python git github


【解决方案1】:

2020 年更新:

8 年后,您将使用 GitHub Actions,例如 github/super-linter
我在“How to set up actions in GitHub for new user?”中介绍了这种方法。


2012 年原答案

您可以在 GitHub 端添加服务(请参阅“GitHub - All the Hooks”和existing third-party services)。

但你不能“推钩”(参见“why it is not possible to git add .git/hooks/my-hook”或“Git remote/shared pre-commit hook”。

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

此类版本化脚本的示例(用于 Python 标准)将在 blog postLorenzo Bolla 中可见,并在 GitHub repo 中进行更新。
它基于PyLintPyFlake(另见“PyLint, PyChecker or PyFlakes?”)。


OP 在 cmets 中提到 package vvv 0.1

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

VVV 是一个用于轻松验证和 linting 集成您的软件项目的工具。
根据您在简单配置文件中指定的策略,使用单个命令验证源代码树中的所有文件(无论使用哪种编程语言)。
VVV 防止在您的软件源代码控制中提交不良内容或进行清理它更容易。

【讨论】:

  • 注意:PyLint 和 PyFlake 不是您特定 Pep8 Python 指南风格的答案,只是如何在 Git 挂钩中安装和执行 Python 脚本的示例。
  • 现在这里有一个简单的命令可安装工具:pypi.python.org/pypi/vvv/
  • @MikkoOhtamaa 有趣的是,我已将其包含在答案中以提高知名度。
猜你喜欢
  • 2021-01-12
  • 2021-09-11
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
  • 2022-10-07
  • 2017-06-26
  • 1970-01-01
  • 2021-09-24
相关资源
最近更新 更多