🐙
ESLintを使ってGitのコミットを審査しよう
まずはGit Repoを作ります
git init es6git
cd es6 git
.eslintrc
を追加します
.eslintrc
{
"env": {
"es6": false,
"browser": true
},
}
code.js
というファイルを追加します(敢えてエラーになるコードを書きます)
code.js
const [a, b] = [123, 1234];
Gitのhookを作ります
まずは.git
というフォルダをVSCodeで開きます
cd .git
code .
中身はこんな感じです
hookはgitのコミットやいろいろな行いをする前に
検査をして、もし通過できなかったらそのコミットを止めます
hooks
の中にcommit-msg
というファイルを作ります
hooks/commit-msg
#!/bin/bash
files=$(git diff --cached --name-only | grep '\.jsx\?$')
# Prevent ESLint help message if no files matched
if [[ $files = "" ]] ; then
exit 0
fi
failed=0
for file in ${files}; do
git show :$file | eslint $file
if [[ $? != 0 ]] ; then
failed=1
fi
done;
if [[ $failed != 0 ]] ; then
echo "🚫🚫🚫 ESLint failed, git commit denied!"
exit $failed
fi
そして、es6git
のターミナルに戻り、hookに権限を付与します
chmod +x .git/hooks/commit-msg
最後にコミットしてみます
ESLintをパスできなかったコードは、hookによるコミット禁止とされています
Discussion