Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 / 一个轻量可扩展的开发姿势监督与矫正工具
- Host: GitHub
- URL: https://github.com/wgrape/posture
- Owner: WGrape
- License: mit
- Created: 2022-08-23T13:00:51.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-02T15:33:24.000Z (8 months ago)
- Last Synced: 2024-10-09T17:40:59.190Z (29 days ago)
- Topics: developer-tools, development, git, linter, posture, shell, workflow
- Language: Shell
- Homepage:
- Size: 199 KB
- Stars: 13
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
A lightweight and extensible tool for supervising and correcting of development posture
一个轻量可扩展的开发姿势监督与矫正工具
# 一、项目介绍
posture是一个轻量可扩展的开发姿势监督与矫正工具,让您快速开始以正确的规范编写和管理代码,解决团队开发时代码百花齐放、Git提交信息乱写、Git误操作等一系列开发中的"姿势不正确"问题。# 二、快速安装
您可以先通过以下命令完成下载安装操作,如果出现```install successfully```提示,则说明安装成功。这时使用```posture```或```posture help```命令都可以查看使用帮助。
```bash
git clone https://github.com/WGrape/posture.git && cd posture && bash ./install.sh
```查看使用示例
安装成功
查看命令帮助
在安装成功后,会在您的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```关键字数组,我们把需要检查的关键字输入进去,就可以实现自定义的扫描关键字需求。
查看使用示例
## 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钩子,如下图所示。查看使用示例
### (2) pull钩子
在使用```git pull```命令时,会自动执行pull钩子(由post-merge钩子实现),如下图所示。查看使用示例
### (3) commit钩子
当使用```git commit```命令时,会自动执行commit钩子,如下图所示。查看使用示例
如果在主分支(main/master)直接编辑提交代码,会出现如下提醒并中断操作。
查看使用示例
提交成功后会触发```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钩子,如下图所示。查看使用示例
如果提交了与本地不一致的分支,会出现如下提醒并中断操作。
查看使用示例
# 四、卸载更新
## 1、卸载应用
如果需要卸载,在执行完以下命令后,手动删除```$POSTURE_PATH```目录即可。```bash
cd $POSTURE_PATH && bash ./uninstall.sh
```查看使用示例
## 2、版本更新
为保证您的良好使用体验,建议使用最新版的posture工具,执行以下命令即可完成更新。```bash
posture update
```查看使用示例
# 五、项目贡献
如果您觉得项目有用,欢迎star !您还可以参考[如何贡献](./.github/CONTRIBUTING.md)文档来共同参与此项目,欢迎加入 !