`

git commit添加静态代码检查hook

 
阅读更多

静态代码检查对于成熟的程序/程序员来说非常重要,保持代码风格一致,避免低级错误,而对于vim党,强制要求在commit前检查,如果有不符合规范的不允许提交代码,可以通过如下方法:

 

修改代码仓库根目录下.git/hook/pre-commit

#!/bin/bash
function python_style_check() {
    #check python code in a git repo
    root=`git rev-parse --show-toplevel`
    exit=0
    for file in `git diff --name-only --cached --diff-filter=ACMRTUXB HEAD|grep '\.py$'`; do
        flake8 --config=$root/.flake8 $root/$file
        if [ $? -ne 0 ]; then
            let exit=1
        fi
    done
    exit $exit
}
python_style_check

 附flake8的配置:

[flake8]
ignore = W291,W391,W601,E123,E124,E125,E126,E127,E128,E221,E225,E226,E261,E262,E265,E272,E302,E501,E502,E711,E712
show-source = true

 

0
1
分享到:
评论

相关推荐

    前端开源库-git-hooks

    在前端开发中,Git Hooks常常用于自动化任务,如代码格式化、静态分析、测试执行,以确保代码质量并遵循团队规范。 本文将详细介绍Git Hooks的概念、工作原理以及如何在实际项目中应用它们,特别是针对前端开源库的...

    自动触发GitCommit

    而"自动触发GitCommit"指的是通过自动化脚本或工具,在代码发生变化时自动提交并推送至Git仓库,以实现持续集成(Continuous Integration, CI)或持续部署(Continuous Deployment, CD)的过程。这种方式可以提高...

    Go-git仓库设置hook通知企业微信

    在开发过程中,为了确保代码的质量和安全性,我们可能需要在预提交(pre-commit)钩子中添加代码格式化和静态代码分析的步骤。而在post-receive或post-update钩子中,我们可以处理推送后的工作,如构建、测试和部署...

    Python库 | pre_commit_run_hook_entry-1.0.0a2-py3-none-any.whl

    通过`pre-commit`库,你可以安装并执行各种检查工具,如`flake8`(代码风格检查)、`black`(自动代码格式化)或`mypy`(静态类型检查)。这个库使得项目能够拥有一个统一的代码质量标准,并且在每次提交时自动执行...

    自建具备全文搜索能力的git server 配套代码

    例如,pre-commit钩子可以在提交前检查代码格式,post-receive钩子则可以在代码推送到服务器后触发某些操作,如触发全文索引更新。 8. **gitmonitor**:这个文件可能是监控Git操作的服务,例如监听仓库变更,触发...

    Laravel开发-laravel-git-sniffer

    "laravel-git-sniffer"就是这样一款实用工具,它集成在Git的工作流程中,通过Git的预提交钩子机制(pre-commit hook)运行。当开发者试图提交代码时,这个钩子会自动执行,对即将提交的代码进行静态分析,检测是否...

    Python库 | pre_commit_hooks-3.3.0.tar.gz

    `pre-commit-hooks`库集成了许多常用的代码检查工具,如`flake8`(用于Python代码风格检查)、`black`(自动代码格式化工具)、`mypy`(静态类型检查器)等。通过这个库,开发者可以轻松地在项目中设置预提交钩子,...

    mit-2021-pre-commit-hook

    3. 将`.pre-commit-config.yaml`文件的内容添加到本地项目的`.git/hooks/pre-commit`文件中,或者使用`pre-commit install`命令将钩子自动链接到本地Git配置。 这样,每次在执行`git commit`前,预定义的钩子任务...

    checkstyle5.6

    同时,它还可以与版本控制系统(如 Git)相结合,通过提交钩子(pre-commit hook)在代码提交前进行检查,避免不符合规范的代码入库。 总的来说,Checkstyle 5.6 是一款强大而灵活的静态代码检查工具,它可以帮助...

    git-scripts:一些有用的git-scripts

    可能有脚本集成代码质量检查工具,如`git-pre-commit-hook.sh`,在提交代码前执行静态代码分析,确保代码质量。 10. **集成其他工具** 这些Git脚本可能还与Jenkins、Travis CI等持续集成工具结合,实现自动构建、...

    git-hooks:我们 PHP 团队使用的 git 钩子

    通过在 `pre-commit` 钩子中运行,团队可以确保在代码入库前所有修改过的文件都符合编码规范,避免了后期的大量代码格式调整工作。 除了这两个具体的钩子之外,Git Hooks 还包含其他多种类型的钩子,例如: 1. `...

    git-hooks:一组有用的 git 钩子

    - **启用 Hook**:将 `.git/hooks` 中的示例脚本(通常以 `.sample` 结尾)更改为可执行文件(例如,`chmod +x .git/hooks/pre-commit`)并进行编辑。 - **自定义逻辑**:在脚本中添加所需的验证或自动化任务,...

    一个PHP代码质量工具___下载.zip

    GrumPHP,全称为Git Hook Helper,是一款基于Git的预提交钩子工具,用于在代码提交前自动执行一系列代码质量检查任务。这些任务包括语法检查、编码风格校验、单元测试运行等,确保每次提交的代码都符合预设的质量...

    checkr:自定义静态分析规则的惰性。 用几行代码编写项目特定的静态分析检查

    checkr vs代码扩展+ git hook :magnifying_glass_tilted_left: 用几行代码编写静态分析检查。 [function timeZoneCasing ( { fileExtension } , underline ) {if ( fileExtension !== 'js' ) return ;underline ( '...

    Laravel开发-laravel-php-code-analysis-hook

    这个预提交钩子的工作原理是在本地Git仓库中设置一个`pre-commit`脚本,当开发者尝试提交代码时,这个脚本会自动执行。如果分析工具发现任何问题,提交将会被阻止,提示开发者修正这些问题后再提交。这种方式可以...

    Hartmann:最小的 Git-Hook-Driven CI 工具

    Git Hook 可以在本地仓库(如 pre-commit、post-commit)或远程仓库(如 pre-receive、post-receive)触发,执行预定义的任务,如代码格式检查、单元测试或静态代码分析。持续集成是开发实践中的一个关键环节,它...

    lintr:R的静态代码分析

    - **Git Hook**: 可以设置 Git 钩子(pre-commit),在提交代码前自动运行 lintr,确保提交的代码符合标准。 5. **lintr的局限性和改进** - 虽然 lintr 很强大,但并不能捕捉所有类型的错误,例如逻辑错误或特定...

    blogit:一个基于 git 的博客脚本,用 Python 编写为 git 钩子

    该脚本旨在在 git repo 之上构建一个静态博客。 这样,您就可以使用 git 功能来拥有博客的完整存档和备份。 许多脚本旨在做到这一点,这只是一个。 我需要一些更个性化并适合我的需求的东西,所以我想出了这个代码。...

    awesome-git-hooks::smiling_face_with_sunglasses:很棒的Git挂钩集合

    Git Hooks分为客户端和服务器端两种,客户端钩子(如pre-commit、post-commit)在本地运行,而服务器端钩子(如pre-receive、update)在Git仓库服务器上执行,它们可以用来控制代码的推送和接收。 压缩包中的...

    Test-linter-prettier-hook

    这通常涉及到Git的预提交钩子(pre-commit hook),这是一种脚本,可以在代码提交到版本控制系统之前运行,以执行验证、清理或其他任务。 首先,让我们详细了解一下JavaScript linters。常见的JavaScript linters有...

Global site tag (gtag.js) - Google Analytics