@huaiyou/hooks-git
Advanced tools
+6
-0
| # @huaiyou/hooks-git | ||
| ## 2.3.0 | ||
| ### Minor Changes | ||
| - Add docs command to generate usage documentation | ||
| ## 2.2.4 | ||
@@ -4,0 +10,0 @@ |
+164
-1
@@ -17,3 +17,3 @@ #!/usr/bin/env node | ||
| const version = "2.2.4"; | ||
| const version = "2.3.0"; | ||
@@ -229,2 +229,152 @@ const logger = { | ||
| const DOCS_CONTENT = `# Git Hooks \u4F7F\u7528\u6307\u5357 | ||
| \u672C\u6587\u6863\u7531 \`@huaiyou/hooks-git\` \u81EA\u52A8\u751F\u6210\uFF0C\u4ECB\u7ECD Git \u63D0\u4EA4\u89C4\u8303\u548C\u4F7F\u7528\u65B9\u6CD5\u3002 | ||
| ## \u{1F4DD} \u63D0\u4EA4\u4FE1\u606F\u683C\u5F0F | ||
| \u63D0\u4EA4\u4FE1\u606F\u9075\u5FAA Conventional Commits \u89C4\u8303\uFF1A | ||
| \`\`\` | ||
| <type>(<scope>): <subject> | ||
| <body> | ||
| <footer> | ||
| \`\`\` | ||
| ### \u683C\u5F0F\u8BF4\u660E | ||
| - **type**\uFF08\u5FC5\u586B\uFF09\uFF1A\u63D0\u4EA4\u7C7B\u578B | ||
| - **scope**\uFF08\u53EF\u9009\uFF09\uFF1A\u5F71\u54CD\u8303\u56F4 | ||
| - **subject**\uFF08\u5FC5\u586B\uFF09\uFF1A\u7B80\u77ED\u63CF\u8FF0 | ||
| - **body**\uFF08\u53EF\u9009\uFF09\uFF1A\u8BE6\u7EC6\u63CF\u8FF0 | ||
| - **footer**\uFF08\u53EF\u9009\uFF09\uFF1A\u5173\u8054 Issue \u6216\u7834\u574F\u6027\u53D8\u66F4 | ||
| ### \u793A\u4F8B | ||
| \`\`\`bash | ||
| # \u7B80\u5355\u683C\u5F0F | ||
| feat: \u6DFB\u52A0\u7528\u6237\u767B\u5F55\u529F\u80FD | ||
| # \u5E26\u8303\u56F4\u7684\u683C\u5F0F | ||
| feat(auth): \u6DFB\u52A0 OAuth \u767B\u5F55\u652F\u6301 | ||
| # \u5E26\u8BE6\u7EC6\u63CF\u8FF0 | ||
| fix: \u4FEE\u590D\u767B\u5F55\u65F6\u7684\u9A8C\u8BC1\u9519\u8BEF | ||
| - \u4FEE\u590D token \u9A8C\u8BC1\u903B\u8F91 | ||
| - \u6DFB\u52A0\u9519\u8BEF\u63D0\u793A | ||
| Closes #123 | ||
| \`\`\` | ||
| --- | ||
| ## \u{1F3F7}\uFE0F \u63D0\u4EA4\u7C7B\u578B\uFF08type\uFF09 | ||
| | \u7C7B\u578B | \u8BF4\u660E | \u793A\u4F8B | | ||
| |------|------|------| | ||
| | \`feat\` | \u2728 \u65B0\u529F\u80FD | \`feat: \u6DFB\u52A0\u7528\u6237\u5934\u50CF\u4E0A\u4F20\` | | ||
| | \`fix\` | \u{1F41B} \u4FEE\u590D Bug | \`fix: \u4FEE\u590D\u5BFC\u822A\u680F\u5728\u79FB\u52A8\u7AEF\u7684\u663E\u793A\u95EE\u9898\` | | ||
| | \`docs\` | \u{1F4DA} \u6587\u6863\u66F4\u65B0 | \`docs: \u66F4\u65B0 API \u6587\u6863\` | | ||
| | \`style\` | \u{1F484} \u4EE3\u7801\u683C\u5F0F\uFF08\u4E0D\u5F71\u54CD\u903B\u8F91\uFF09 | \`style: \u7EDF\u4E00\u4EE3\u7801\u7F29\u8FDB\` | | ||
| | \`refactor\` | \u267B\uFE0F \u91CD\u6784\u4EE3\u7801\uFF08\u4E0D\u5F71\u54CD\u529F\u80FD\uFF09 | \`refactor: \u91CD\u6784\u7528\u6237\u670D\u52A1\u5C42\` | | ||
| | \`perf\` | \u26A1 \u6027\u80FD\u4F18\u5316 | \`perf: \u4F18\u5316\u5217\u8868\u6E32\u67D3\u6027\u80FD\` | | ||
| | \`test\` | \u{1F9EA} \u6D4B\u8BD5\u76F8\u5173 | \`test: \u6DFB\u52A0\u767B\u5F55\u5355\u5143\u6D4B\u8BD5\` | | ||
| | \`chore\` | \u{1F527} \u5DE5\u5177\u6216\u811A\u624B\u67B6\u53D8\u66F4 | \`chore: \u66F4\u65B0 ESLint \u914D\u7F6E\` | | ||
| | \`ci\` | \u2699\uFE0F CI/CD \u76F8\u5173 | \`ci: \u6DFB\u52A0 GitHub Actions \u5DE5\u4F5C\u6D41\` | | ||
| | \`build\` | \u{1F6E0} \u6784\u5EFA\u7CFB\u7EDF\u6216\u5916\u90E8\u4F9D\u8D56\u53D8\u66F4 | \`build: \u5347\u7EA7 webpack \u5230 5\` | | ||
| | \`revert\` | \u23EA \u56DE\u6EDA\u63D0\u4EA4 | \`revert: \u56DE\u6EDA\u767B\u5F55\u529F\u80FD\` | | ||
| | \`update\` | \u2B06\uFE0F \u66F4\u65B0\u67D0\u529F\u80FD\uFF08\u975E\u65B0\u529F\u80FD/\u975E\u4FEE\u590D\uFF09 | \`update: \u66F4\u65B0\u4F9D\u8D56\u5E93\u7248\u672C\` | | ||
| --- | ||
| ## \u{1F4CB} \u63D0\u4EA4\u89C4\u8303 | ||
| ### Subject\uFF08\u4E3B\u9898\uFF09\u89C4\u5219 | ||
| - \u4F7F\u7528\u4E2D\u6587\u63CF\u8FF0 | ||
| - \u4E0D\u8981\u4EE5\u53E5\u53F7\u7ED3\u5C3E | ||
| - \u9996\u5B57\u6BCD\u5C0F\u5199 | ||
| - \u957F\u5EA6\u4E0D\u8D85\u8FC7 72 \u4E2A\u5B57\u7B26 | ||
| ### Body\uFF08\u6B63\u6587\uFF09\u89C4\u5219 | ||
| - \u4F7F\u7528\u4E2D\u6587\u63CF\u8FF0 | ||
| - \u8BF4\u660E"\u662F\u4EC0\u4E48"\u548C"\u4E3A\u4EC0\u4E48"\uFF0C\u800C\u4E0D\u662F"\u600E\u4E48\u505A" | ||
| - \u6BCF\u884C\u4E0D\u8D85\u8FC7 100 \u4E2A\u5B57\u7B26 | ||
| ### Footer\uFF08\u811A\u6CE8\uFF09\u89C4\u5219 | ||
| - \u5173\u8054 Issue\uFF1A\`Closes #123\` \u6216 \`Fixes #456\` | ||
| - \u7834\u574F\u6027\u53D8\u66F4\uFF1A\u4EE5 \`BREAKING CHANGE:\` \u5F00\u5934 | ||
| --- | ||
| ## \u{1F527} \u5E38\u7528\u547D\u4EE4 | ||
| \`\`\`bash | ||
| # \u521D\u59CB\u5316\u914D\u7F6E\uFF08\u5982\u679C\u9700\u8981\u91CD\u65B0\u914D\u7F6E\uFF09 | ||
| npx hy-hooks-git init | ||
| # \u751F\u6210\u6587\u6863 | ||
| npx hy-hooks-git docs | ||
| # \u56DE\u6EDA\u914D\u7F6E | ||
| npx hy-hooks-git rollback | ||
| \`\`\` | ||
| --- | ||
| ## \u274C \u5E38\u89C1\u9519\u8BEF\u793A\u4F8B | ||
| \`\`\`bash | ||
| # \u274C \u9519\u8BEF\uFF1A\u7F3A\u5C11\u7C7B\u578B | ||
| \u6DFB\u52A0\u4E86\u4E00\u4E2A\u65B0\u529F\u80FD | ||
| # \u2705 \u6B63\u786E | ||
| feat: \u6DFB\u52A0\u7528\u6237\u5934\u50CF\u529F\u80FD | ||
| # \u274C \u9519\u8BEF\uFF1A\u7C7B\u578B\u4E0D\u5408\u6CD5 | ||
| new: \u6DFB\u52A0\u65B0\u529F\u80FD | ||
| # \u2705 \u6B63\u786E | ||
| feat: \u6DFB\u52A0\u65B0\u529F\u80FD | ||
| # \u274C \u9519\u8BEF\uFF1A\u4EE5\u53E5\u53F7\u7ED3\u5C3E | ||
| feat: \u6DFB\u52A0\u65B0\u529F\u80FD\u3002 | ||
| # \u2705 \u6B63\u786E | ||
| feat: \u6DFB\u52A0\u65B0\u529F\u80FD | ||
| \`\`\` | ||
| --- | ||
| ## \u{1F4D6} \u53C2\u8003\u8D44\u6599 | ||
| - [Conventional Commits](https://www.conventionalcommits.org/) | ||
| - [Commitlint](https://commitlint.js.org/) | ||
| `; | ||
| const DOCS_FILE = "GIT_HOOKS_GUIDE.md"; | ||
| const docs = async () => { | ||
| logger.box("Generating Git Hooks Guide"); | ||
| const docsPath = node_path.resolve(process.cwd(), DOCS_FILE); | ||
| if (fs__default.existsSync(docsPath)) { | ||
| logger.warn(`Documentation file already exists: ${DOCS_FILE}`); | ||
| logger.info("Use --force to overwrite"); | ||
| return; | ||
| } | ||
| await fs__default.writeFile(docsPath, DOCS_CONTENT); | ||
| logger.success(`Documentation created: ${DOCS_FILE}`); | ||
| logger.info("You can now view the guide for commit conventions."); | ||
| }; | ||
| const docsForce = async () => { | ||
| logger.box("Generating Git Hooks Guide"); | ||
| const docsPath = node_path.resolve(process.cwd(), DOCS_FILE); | ||
| await fs__default.writeFile(docsPath, DOCS_CONTENT); | ||
| logger.success(`Documentation created: ${DOCS_FILE}`); | ||
| logger.info("You can now view the guide for commit conventions."); | ||
| }; | ||
| const cli = cac__default("hy-hooks-git"); | ||
@@ -249,4 +399,17 @@ cli.command("init", "Initialize git hooks and configuration").action(async () => { | ||
| }); | ||
| cli.command("docs", "Generate usage documentation").option("-f, --force", "Overwrite existing documentation").action(async (options) => { | ||
| try { | ||
| if (options.force) { | ||
| await docsForce(); | ||
| } else { | ||
| await docs(); | ||
| } | ||
| } catch (error) { | ||
| logger.error("Documentation generation failed."); | ||
| console.error(error); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| cli.help(); | ||
| cli.version(version); | ||
| cli.parse(); |
+164
-1
@@ -9,3 +9,3 @@ #!/usr/bin/env node | ||
| const version = "2.2.4"; | ||
| const version = "2.3.0"; | ||
@@ -221,2 +221,152 @@ const logger = { | ||
| const DOCS_CONTENT = `# Git Hooks \u4F7F\u7528\u6307\u5357 | ||
| \u672C\u6587\u6863\u7531 \`@huaiyou/hooks-git\` \u81EA\u52A8\u751F\u6210\uFF0C\u4ECB\u7ECD Git \u63D0\u4EA4\u89C4\u8303\u548C\u4F7F\u7528\u65B9\u6CD5\u3002 | ||
| ## \u{1F4DD} \u63D0\u4EA4\u4FE1\u606F\u683C\u5F0F | ||
| \u63D0\u4EA4\u4FE1\u606F\u9075\u5FAA Conventional Commits \u89C4\u8303\uFF1A | ||
| \`\`\` | ||
| <type>(<scope>): <subject> | ||
| <body> | ||
| <footer> | ||
| \`\`\` | ||
| ### \u683C\u5F0F\u8BF4\u660E | ||
| - **type**\uFF08\u5FC5\u586B\uFF09\uFF1A\u63D0\u4EA4\u7C7B\u578B | ||
| - **scope**\uFF08\u53EF\u9009\uFF09\uFF1A\u5F71\u54CD\u8303\u56F4 | ||
| - **subject**\uFF08\u5FC5\u586B\uFF09\uFF1A\u7B80\u77ED\u63CF\u8FF0 | ||
| - **body**\uFF08\u53EF\u9009\uFF09\uFF1A\u8BE6\u7EC6\u63CF\u8FF0 | ||
| - **footer**\uFF08\u53EF\u9009\uFF09\uFF1A\u5173\u8054 Issue \u6216\u7834\u574F\u6027\u53D8\u66F4 | ||
| ### \u793A\u4F8B | ||
| \`\`\`bash | ||
| # \u7B80\u5355\u683C\u5F0F | ||
| feat: \u6DFB\u52A0\u7528\u6237\u767B\u5F55\u529F\u80FD | ||
| # \u5E26\u8303\u56F4\u7684\u683C\u5F0F | ||
| feat(auth): \u6DFB\u52A0 OAuth \u767B\u5F55\u652F\u6301 | ||
| # \u5E26\u8BE6\u7EC6\u63CF\u8FF0 | ||
| fix: \u4FEE\u590D\u767B\u5F55\u65F6\u7684\u9A8C\u8BC1\u9519\u8BEF | ||
| - \u4FEE\u590D token \u9A8C\u8BC1\u903B\u8F91 | ||
| - \u6DFB\u52A0\u9519\u8BEF\u63D0\u793A | ||
| Closes #123 | ||
| \`\`\` | ||
| --- | ||
| ## \u{1F3F7}\uFE0F \u63D0\u4EA4\u7C7B\u578B\uFF08type\uFF09 | ||
| | \u7C7B\u578B | \u8BF4\u660E | \u793A\u4F8B | | ||
| |------|------|------| | ||
| | \`feat\` | \u2728 \u65B0\u529F\u80FD | \`feat: \u6DFB\u52A0\u7528\u6237\u5934\u50CF\u4E0A\u4F20\` | | ||
| | \`fix\` | \u{1F41B} \u4FEE\u590D Bug | \`fix: \u4FEE\u590D\u5BFC\u822A\u680F\u5728\u79FB\u52A8\u7AEF\u7684\u663E\u793A\u95EE\u9898\` | | ||
| | \`docs\` | \u{1F4DA} \u6587\u6863\u66F4\u65B0 | \`docs: \u66F4\u65B0 API \u6587\u6863\` | | ||
| | \`style\` | \u{1F484} \u4EE3\u7801\u683C\u5F0F\uFF08\u4E0D\u5F71\u54CD\u903B\u8F91\uFF09 | \`style: \u7EDF\u4E00\u4EE3\u7801\u7F29\u8FDB\` | | ||
| | \`refactor\` | \u267B\uFE0F \u91CD\u6784\u4EE3\u7801\uFF08\u4E0D\u5F71\u54CD\u529F\u80FD\uFF09 | \`refactor: \u91CD\u6784\u7528\u6237\u670D\u52A1\u5C42\` | | ||
| | \`perf\` | \u26A1 \u6027\u80FD\u4F18\u5316 | \`perf: \u4F18\u5316\u5217\u8868\u6E32\u67D3\u6027\u80FD\` | | ||
| | \`test\` | \u{1F9EA} \u6D4B\u8BD5\u76F8\u5173 | \`test: \u6DFB\u52A0\u767B\u5F55\u5355\u5143\u6D4B\u8BD5\` | | ||
| | \`chore\` | \u{1F527} \u5DE5\u5177\u6216\u811A\u624B\u67B6\u53D8\u66F4 | \`chore: \u66F4\u65B0 ESLint \u914D\u7F6E\` | | ||
| | \`ci\` | \u2699\uFE0F CI/CD \u76F8\u5173 | \`ci: \u6DFB\u52A0 GitHub Actions \u5DE5\u4F5C\u6D41\` | | ||
| | \`build\` | \u{1F6E0} \u6784\u5EFA\u7CFB\u7EDF\u6216\u5916\u90E8\u4F9D\u8D56\u53D8\u66F4 | \`build: \u5347\u7EA7 webpack \u5230 5\` | | ||
| | \`revert\` | \u23EA \u56DE\u6EDA\u63D0\u4EA4 | \`revert: \u56DE\u6EDA\u767B\u5F55\u529F\u80FD\` | | ||
| | \`update\` | \u2B06\uFE0F \u66F4\u65B0\u67D0\u529F\u80FD\uFF08\u975E\u65B0\u529F\u80FD/\u975E\u4FEE\u590D\uFF09 | \`update: \u66F4\u65B0\u4F9D\u8D56\u5E93\u7248\u672C\` | | ||
| --- | ||
| ## \u{1F4CB} \u63D0\u4EA4\u89C4\u8303 | ||
| ### Subject\uFF08\u4E3B\u9898\uFF09\u89C4\u5219 | ||
| - \u4F7F\u7528\u4E2D\u6587\u63CF\u8FF0 | ||
| - \u4E0D\u8981\u4EE5\u53E5\u53F7\u7ED3\u5C3E | ||
| - \u9996\u5B57\u6BCD\u5C0F\u5199 | ||
| - \u957F\u5EA6\u4E0D\u8D85\u8FC7 72 \u4E2A\u5B57\u7B26 | ||
| ### Body\uFF08\u6B63\u6587\uFF09\u89C4\u5219 | ||
| - \u4F7F\u7528\u4E2D\u6587\u63CF\u8FF0 | ||
| - \u8BF4\u660E"\u662F\u4EC0\u4E48"\u548C"\u4E3A\u4EC0\u4E48"\uFF0C\u800C\u4E0D\u662F"\u600E\u4E48\u505A" | ||
| - \u6BCF\u884C\u4E0D\u8D85\u8FC7 100 \u4E2A\u5B57\u7B26 | ||
| ### Footer\uFF08\u811A\u6CE8\uFF09\u89C4\u5219 | ||
| - \u5173\u8054 Issue\uFF1A\`Closes #123\` \u6216 \`Fixes #456\` | ||
| - \u7834\u574F\u6027\u53D8\u66F4\uFF1A\u4EE5 \`BREAKING CHANGE:\` \u5F00\u5934 | ||
| --- | ||
| ## \u{1F527} \u5E38\u7528\u547D\u4EE4 | ||
| \`\`\`bash | ||
| # \u521D\u59CB\u5316\u914D\u7F6E\uFF08\u5982\u679C\u9700\u8981\u91CD\u65B0\u914D\u7F6E\uFF09 | ||
| npx hy-hooks-git init | ||
| # \u751F\u6210\u6587\u6863 | ||
| npx hy-hooks-git docs | ||
| # \u56DE\u6EDA\u914D\u7F6E | ||
| npx hy-hooks-git rollback | ||
| \`\`\` | ||
| --- | ||
| ## \u274C \u5E38\u89C1\u9519\u8BEF\u793A\u4F8B | ||
| \`\`\`bash | ||
| # \u274C \u9519\u8BEF\uFF1A\u7F3A\u5C11\u7C7B\u578B | ||
| \u6DFB\u52A0\u4E86\u4E00\u4E2A\u65B0\u529F\u80FD | ||
| # \u2705 \u6B63\u786E | ||
| feat: \u6DFB\u52A0\u7528\u6237\u5934\u50CF\u529F\u80FD | ||
| # \u274C \u9519\u8BEF\uFF1A\u7C7B\u578B\u4E0D\u5408\u6CD5 | ||
| new: \u6DFB\u52A0\u65B0\u529F\u80FD | ||
| # \u2705 \u6B63\u786E | ||
| feat: \u6DFB\u52A0\u65B0\u529F\u80FD | ||
| # \u274C \u9519\u8BEF\uFF1A\u4EE5\u53E5\u53F7\u7ED3\u5C3E | ||
| feat: \u6DFB\u52A0\u65B0\u529F\u80FD\u3002 | ||
| # \u2705 \u6B63\u786E | ||
| feat: \u6DFB\u52A0\u65B0\u529F\u80FD | ||
| \`\`\` | ||
| --- | ||
| ## \u{1F4D6} \u53C2\u8003\u8D44\u6599 | ||
| - [Conventional Commits](https://www.conventionalcommits.org/) | ||
| - [Commitlint](https://commitlint.js.org/) | ||
| `; | ||
| const DOCS_FILE = "GIT_HOOKS_GUIDE.md"; | ||
| const docs = async () => { | ||
| logger.box("Generating Git Hooks Guide"); | ||
| const docsPath = resolve(process.cwd(), DOCS_FILE); | ||
| if (fs.existsSync(docsPath)) { | ||
| logger.warn(`Documentation file already exists: ${DOCS_FILE}`); | ||
| logger.info("Use --force to overwrite"); | ||
| return; | ||
| } | ||
| await fs.writeFile(docsPath, DOCS_CONTENT); | ||
| logger.success(`Documentation created: ${DOCS_FILE}`); | ||
| logger.info("You can now view the guide for commit conventions."); | ||
| }; | ||
| const docsForce = async () => { | ||
| logger.box("Generating Git Hooks Guide"); | ||
| const docsPath = resolve(process.cwd(), DOCS_FILE); | ||
| await fs.writeFile(docsPath, DOCS_CONTENT); | ||
| logger.success(`Documentation created: ${DOCS_FILE}`); | ||
| logger.info("You can now view the guide for commit conventions."); | ||
| }; | ||
| const cli = cac("hy-hooks-git"); | ||
@@ -241,4 +391,17 @@ cli.command("init", "Initialize git hooks and configuration").action(async () => { | ||
| }); | ||
| cli.command("docs", "Generate usage documentation").option("-f, --force", "Overwrite existing documentation").action(async (options) => { | ||
| try { | ||
| if (options.force) { | ||
| await docsForce(); | ||
| } else { | ||
| await docs(); | ||
| } | ||
| } catch (error) { | ||
| logger.error("Documentation generation failed."); | ||
| console.error(error); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
| cli.help(); | ||
| cli.version(version); | ||
| cli.parse(); |
@@ -93,5 +93,5 @@ #!/usr/bin/env node | ||
| "may not": "\u4E0D\u80FD", | ||
| "found": "\u53D1\u73B0", | ||
| "problems": "\u4E2A\u95EE\u9898", | ||
| "warnings": "\u4E2A\u8B66\u544A", | ||
| found: "\u53D1\u73B0", | ||
| problems: "\u4E2A\u95EE\u9898", | ||
| warnings: "\u4E2A\u8B66\u544A", | ||
| "Get help": "\u83B7\u53D6\u5E2E\u52A9" | ||
@@ -98,0 +98,0 @@ }; |
@@ -91,5 +91,5 @@ #!/usr/bin/env node | ||
| "may not": "\u4E0D\u80FD", | ||
| "found": "\u53D1\u73B0", | ||
| "problems": "\u4E2A\u95EE\u9898", | ||
| "warnings": "\u4E2A\u8B66\u544A", | ||
| found: "\u53D1\u73B0", | ||
| problems: "\u4E2A\u95EE\u9898", | ||
| warnings: "\u4E2A\u8B66\u544A", | ||
| "Get help": "\u83B7\u53D6\u5E2E\u52A9" | ||
@@ -96,0 +96,0 @@ }; |
+1
-1
| { | ||
| "name": "@huaiyou/hooks-git", | ||
| "version": "2.2.4", | ||
| "version": "2.3.0", | ||
| "description": "Git hooks configuration with Husky, Commitlint and Lint-staged", | ||
@@ -5,0 +5,0 @@ "bin": { |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
65720
21.3%1553
18.46%6
100%