🐙

ESLintを使ってGitのコミットを審査しよう

2022/07/18に公開

まずは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

ログインするとコメントできます