gpt4 book ai didi

python - Flake8 linter 检查仅在推送文件上通过 Bitbucket 管道

转载 作者:行者123 更新时间:2023-12-04 13:14:20 26 4
gpt4 key购买 nike

我正在尝试在 bitbucket 管道中设置 Flake8 linter 并且它可以工作,但我只想在推送的文件上运行 linter。目前,它在整个项目上运行。

项目中有很多模块没有优化,暂时不打算做。

下面给出的是 bitbucket-pipelines.yml。

image: python:3.7.3

pipelines:
default:
- step:
caches:
- pip
name: Check flake8
script: # Modify the commands below to build your repository.
- pip install flake8
- flake8 --max-line-length=180 --ignore=E203,W503

enter image description here

例如,我只推送了 核心/util.py 并且只需要在该文件上运行 linter。
我可以指定如下特定文件来运行和工作。
- flake8 core/util.py --max-line-length=180 --ignore=E203,W503
  • 甚至可以使它动态化以接收所有推送的文件吗?
  • 当然,可以推送多个文件,甚至可以配置吗?
  • 最佳答案

    感谢@phd

    下面给出的命令返回当前提交的文件列表。

    git show --name-only --pretty=format:

    和工作完整的命令是:
    flake8 $(git show --name-only --pretty=format:) --max-line-length=180 --ignore=E203,W503

    编辑:

    根据@Anthony 的评论,上面的命令只有在一次提交一次时才有效,这确实是正确的。

    我没有找到任何解决方案来检查所有提交,所以只检查了最后三个提交。 不是正确的解决方案 但根据我的组织工作流程,它会起作用。

    警告:这在像开发一样 merge 到 master 分支时肯定不可靠,因为会有很多提交将被 merge ,它只会检查最后三个。
    flake8 $(git log --name-only --pretty=oneline --full-index HEAD^^^..HEAD | grep -vE '^[0-9a-f]{40} ' | sort | uniq) --exclude=*.yml,*.yaml,*.js,*.css,*.json,*.xml,*.md --max-line-length=180 --ignore=E203,W503

    关于python - Flake8 linter 检查仅在推送文件上通过 Bitbucket 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61853207/

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