/posture

A lightweight and extensible tool for supervising and correcting of development posture / 一个轻量可扩展的开发姿势监督与矫正工具

Primary LanguageShellMIT LicenseMIT

image

A lightweight and extensible tool for supervising and correcting of development posture

一个轻量可扩展的开发姿势监督与矫正工具

GitHub release (latest by date)

一、项目介绍

posture是一个轻量可扩展的开发姿势监督与矫正工具,让您快速开始以正确的规范编写和管理代码,解决团队开发时代码百花齐放、Git提交信息乱写、Git误操作等一系列开发中的"姿势不正确"问题。

二、快速安装

您可以先通过以下命令完成下载安装操作,如果出现install successfully提示,则说明安装成功。这时使用postureposture help命令都可以查看使用帮助。

git clone https://github.com/WGrape/posture.git && cd posture && bash ./install.sh
查看使用示例

安装成功

image

查看命令帮助

image

在安装成功后,会在您的posture项目安装目录下生成一个.env环境配置文件,用于对posture的一些行为控制。另外在~/.bash_profile文件中写入如下内容,自动创建$POSTURE_PATH变量并添加到$PATH变量中,以确保您可以开始使用posture工具。

# Here is the config of posture
export POSTURE_PATH={{the path of posture installation}}
export PATH=$PATH:${POSTURE_PATH}

这样,之后就可以通过echo $POSTURE_PATH命令查看posture的安装目录。

三、如何使用

1、矫正开发姿势

在团队开发中的任何阶段,都可以使用如下命令快速矫正,它会自动对git配置、代码风格等几个方面进行调整,下面会详细介绍。

cd {your_project} # notice: not cd posture project !

posture adjust

(1) git配置的调整

在执行完adjust命令时,posture会自动执行以下操作,确保大家的git配置保持一致。

# 忽略文件权限
git config --global --add core.fileMode false

使用git config --global -lgit config --global -e查看配置情况。

(2) 代码风格的调整

在执行完adjust命令后,在您的项目根目录下,会生成一个.editorconfig文件,它会为您的IDE设置统一的代码规范。

2、扫描项目

在开发的任何阶段,都可以使用如下命令快速扫描我们的任何项目,对一些关键字比如"密码"等进行扫描,防止出现安全性问题。

cd {your_project} # notice: not cd posture project !

posture scan

posture安装路径下的.env配置文件中有定义scan_keywords关键字数组,我们把需要检查的关键字输入进去,就可以实现自定义的扫描关键字需求。

查看使用示例 image image

3、设置全局钩子

在开发前,请使用如下命令设置全局钩子。这样无论在哪个项目下,当使用git命令时,相应的钩子都会自动工作,实时监督我们在git流程中的操作,一旦出现姿势错误的情况,就会即时发出提醒并中断操作。

cd {your_project} # notice: not cd posture project !

posture hook

当需要取消全局钩子时, 执行unhook命令即可

cd {your_project} # notice: not cd posture project !

posture unhook

使用git config --global -lgit config --global -e查看配置情况。

(1) checkout钩子

当使用git checkout/git switch命令时,会自动执行checkout钩子,如下图所示。

查看使用示例 image

(2) pull钩子

在使用git pull命令时,会自动执行pull钩子(由post-merge钩子实现),如下图所示。

查看使用示例

(3) commit钩子

当使用git commit命令时,会自动执行commit钩子,如下图所示。

查看使用示例 image

如果在主分支(main/master)直接编辑提交代码,会出现如下提醒并中断操作。

查看使用示例 image

提交成功后会触发post-commit钩子,自动在$POSTURE_PATH/storage/目录下生成一条以天为单位的commit.${day}.logcommit日志文件,以实现每日工作统计等功能。

# 日志内容如下
2021-08-17/10:51:44 posture wgrape test 3exxxxx feat:新增钉钉WebHook
2021-08-17/10:56:44 posture wgrape test 3exxxxx feat:新增commit日志记录功能

# 每行由6部分组成
-------------------------------------------------------------
| date | project | user | branch | commit_id | commitMessage |
-------------------------------------------------------------

(4) push钩子

当使用git push命令时,会自动执行push钩子,如下图所示。

查看使用示例 image

如果提交了与本地不一致的分支,会出现如下提醒并中断操作。

查看使用示例 image

四、卸载更新

1、卸载应用

如果需要卸载,在执行完以下命令后,手动删除$POSTURE_PATH目录即可。

cd $POSTURE_PATH && bash ./uninstall.sh
查看使用示例

2、版本更新

为保证您的良好使用体验,建议使用最新版的posture工具,执行以下命令即可完成更新。

posture update
查看使用示例

五、项目贡献

如果您觉得项目有用,欢迎star !您还可以参考如何贡献文档来共同参与此项目,欢迎加入 !