为修改后的更改的每次提交运行 pylint

Posted

技术标签:

【中文标题】为修改后的更改的每次提交运行 pylint【英文标题】:Run pylint for every commit on the modified changes 【发布时间】:2020-02-03 03:05:43 【问题描述】:

我想为每个新提交运行 pylint 并在 git 中进行修改。我是初学者,对git不太了解。

以下是我的问题:

    如何使用 git 和 jenkins 获取修改后的文件 如何对文件执行 pylint。

【问题讨论】:

您可以使用 pre-commit-hook 在文件被提交之前对其进行 pylint。比如:git-pylint-commit-hook.readthedocs.io/en/latest 你必须在 Jenkins 中配置你的项目,定义一个 webhook 并让 jenkins 运行 pylint。出于安全原因,我建议不要让 Jenkins 在您的存储库中进行更改并防止死循环。 @KlausD。同意安全原因。我的项目已经集成到 Jenkins。如何进一步进行。如果您可以提供示例代码的解决方案将非常有帮助 如果你已经在 J​​enkins 中进行了项目,那么运行一个额外的命令应该不会有任何问题。 @Klaus D. 我想从 python 文件运行 pylint。我怎样才能得到那里的文件列表?? 【参考方案1】:

我想从 python 文件运行pylint。 我怎样才能得到那里的文件列表?

使用GitPython,您可以轻松list files in a given commit:

commit.stats.files

然后您可以使用该列表的元素应用pylint

注意:要在不使用 GitPython 的情况下执行此操作,请参阅“Get a list of changed files between two commits or branches”:比较 <SHA1><SHA1>~1:您的提交和您提交的父级(第一个祖先)。

【讨论】:

如果没有 GitPython,我们不能这样做吗?如果您可以在没有 GitPython 的情况下提供解决方案,这将非常有帮助 @Shikhar 当然,我已经相应地编辑了我的答案。

以上是关于为修改后的更改的每次提交运行 pylint的主要内容,如果未能解决你的问题,请参考以下文章

git 仅添加修改过的更改并忽略未跟踪的文件

如何在windows下为pylint指定配置文件?

从修改后的提交中删除文件

保存并提交修改后的容器镜像

#yyds干货盘点# 保存并提交修改后的容器镜像

如何仅在 Gitlab 中更改的文件上运行 pylint?