Skip to content

Commit 5c26c52

Browse files
Add commit message sanitization and testing setup
- Introduced sanitizeCommitMessage function to clean commit messages by removing disallowed special characters while allowing Unicode characters numbers spaces and certain symbols. - Updated index.js to use the
1 parent cf8dc11 commit 5c26c52

File tree

6 files changed

+1774
-73
lines changed

6 files changed

+1774
-73
lines changed

index.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import prompts from 'prompts'
88
import { program } from 'commander'
99
import fs from 'fs'
1010
import os from 'os'
11+
import { sanitizeCommitMessage } from './utils/sanitizeCommitMessage.js'
1112

1213
let openai
1314
let model = 'gpt-4o' // Default model
@@ -101,20 +102,19 @@ const gptCommit = async () => {
101102
}
102103

103104
const response = await openai.chat.completions.create(parameters)
104-
console.log(response.choices[0].message.content)
105-
const message = response.choices[0].message.content
106-
.replace(/[^\w\s.:@<>/-]/gi, '')
107-
.trim()
105+
106+
const message = response.choices[0].message.content.trim()
107+
const sanitizedMessage = sanitizeCommitMessage(message)
108108

109109
const confirm = await prompts({
110110
type: 'confirm',
111111
name: 'value',
112-
message: `${message}.`,
112+
message: `${sanitizedMessage}.`,
113113
initial: true,
114114
})
115115

116116
if (confirm.value) {
117-
execSync(`git commit -m "${message}"`) // escape double quart
117+
execSync(`git commit -m "${sanitizedMessage}"`) // escape double quart
118118
console.log('Committed with the suggested message.')
119119
} else {
120120
console.log('Commit canceled.')

package.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"type": "module",
77
"scripts": {
88
"prepare": "husky",
9-
"prettier": "prettier --ignore-unknown --write ."
9+
"prettier": "prettier --ignore-unknown --write .",
10+
"test": "vitest"
1011
},
1112
"repository": {
1213
"type": "git",
@@ -35,9 +36,14 @@
3536
"node": "22.15.0"
3637
},
3738
"devDependencies": {
39+
"@vitest/coverage-v8": "3.1.2",
40+
"@vitest/ui": "^3.1.2",
3841
"husky": "^9.1.7",
42+
"jsdom": "^26.1.0",
3943
"lint-staged": "^15.5.1",
40-
"prettier": "^3.5.3"
44+
"prettier": "^3.5.3",
45+
"vite": "^6.3.3",
46+
"vitest": "^3.1.2"
4147
},
4248
"lint-staged": {
4349
"*": "prettier --ignore-unknown --write"

0 commit comments

Comments
 (0)