Skip to content

FE-CodeGenius/codegenius-git-user-plugin

Repository files navigation

@codegenius/git-user-plugin

设置或校验 git user 信息是否规范, 支持命令模式和 API 模式;

使用场景: 用于校验那些不应该出现的邮箱地址会名称出现在 git 提交记录中, 常见的使用公司内部邮箱提交 github 的开源项目, 这通常是不允许的.

安装

npm i @codegenius/git-user-plugin -D
import { defineConfig } from "code-genius";
import { gitUserInstaller } from "@codegenius/git-user-plugin";

export default defineConfig({
  plugins: [
    gitUserInstaller({
      ruleEmail: "^[a-zA-Z0-9._%+-]+@(gmail)\\.(com)$",
    }),
  ],
});

使用

命令模式

# 在默认规则下设置 email 信息
codeg gituser -e [email protected]

# 在指定规则下设置 email 信息
codeg gituser -e [email protected] --rule-email '^[a-zA-Z0-9._%+-]+@(qq)\.(com)$'
# 在默认规则下校验 user 和 email 信息
codeg gituser

# 在指定规则下校验 user 和 email 信息
codeg gituser --rule-email '^[a-zA-Z0-9._%+-]+@(qq)\.(com)$'
选项 描述
-n, --name <name> 设置 user.name
-e, --email <email> 设置 user.email
--rule-name <regexp> 设置 user.name 匹配规则(转义字符串)
--rule-email <regexp> 设置 user.email 匹配规则(转义字符串)
  • --rule-name 默认 : [\s\S]*
  • --rule-email 默认 : ^[a-zA-Z0-9._%+-]+@(163|qq|126|139|sina|sohu|yeah|gmail)\.(com|net)$

API 模式

import { setGitUserName, setGitUserEmail, checkGitUserInfo } from "@codegenius/git-user-plugin";

(async () => {
  await setGitUserName("OSpoon", "[\\s\\S]*");
  await setGitUserEmail(
    "[email protected]",
    "^[a-zA-Z0-9._%+-]+@(gmail)\\.(com)$"
  );
  await checkGitUserInfo("[\\s\\S]*", "^[a-zA-Z0-9._%+-]+@(gmail)\\.(com)$");
})();