Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wgrape/posture

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

developer-tools development git linter posture shell workflow

Last synced: 18 days ago
JSON representation

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

Awesome Lists containing this project

README

        


image


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


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





GitHub release (latest by date)




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

# 二、快速安装

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

```bash
git clone https://github.com/WGrape/posture.git && cd posture && bash ./install.sh
```

查看使用示例

安装成功


image

查看命令帮助


image

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

```bash
# 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配置、代码风格等几个方面进行调整,下面会详细介绍。

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

posture adjust
```

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

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

> 使用```git config --global -l```或```git config --global -e```查看配置情况。

### (2) 代码风格的调整

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

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

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

posture scan
```

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

查看使用示例
image
image

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

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

posture hook
```

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

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

posture unhook
```

> 使用```git config --global -l```或```git 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}.log```commit日志文件,以实现每日工作统计等功能。

```text
# 日志内容如下
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```目录即可。

```bash
cd $POSTURE_PATH && bash ./uninstall.sh
```

查看使用示例

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

```bash
posture update
```

查看使用示例

# 五、项目贡献
如果您觉得项目有用,欢迎star !您还可以参考[如何贡献](./.github/CONTRIBUTING.md)文档来共同参与此项目,欢迎加入 !