Husky for go 시작하기

힘내 후크



허스키가 무엇인지 이해하기 전에 git hooks에 어느 정도 익숙해야 합니다. 아시다시피 git은 사용자 정의할 수 있는 버전 제어 시스템입니다. git을 사용자 정의하는 한 가지 방법은 후크를 사용하는 것입니다. 후크는 git의 이벤트에 의해 트리거될 수 있는 특정 명령을 실행하는 데 사용할 수 있는 사용자 지정 스크립트입니다. 후크의 몇 가지 예는 사전 커밋, 커밋 후, 사전 수신 등입니다.

왜 사용할까요?



후크는 코드를 린트할 수 있는 특정 스크립트를 작성할 수 있고 GitHub에 푸시하기 전에 자동으로 테스트하여 아무 것도 깨지지 않는지 확인하고 다른 많은 것들을 할 수 있기 때문에 유용합니다. 이 경우 창의성이 한계입니다.

에스키모 개의



음, 후크는 훌륭해 보이지만 어떻게 사용합니까? git이 즉시 제공하는 도구를 사용하여 복잡한 방식으로 사용하거나 husky과 같은 패키지를 사용하여 모든 복잡한 작업을 수행하도록 할 수 있습니다.

설정



Go 프로젝트에서 사용하려면 먼저 아래 명령을 사용하여 다른 패키지처럼 설치해야 합니다.

$ go install github.com/automation-co/husky@latest


설치 후 다음을 실행하여 husky를 초기화할 수 있습니다husky init.

해당 명령을 실행하면 내부에 샘플 후크가 있는 작업 공간에 .husky라는 이름의 새 폴더가 표시됩니다. 파일 이름은 후크를 트리거하는 이벤트를 나타냅니다. 이 경우 커밋할 때마다 이 파일의 명령이 실행되는 pre-commit 파일이 표시됩니다.

일부 후크 추가



후크를 쉽게 추가할 수 있도록 허스키를 설정했으므로 다음으로 할 일은 이를 활용하는 것입니다.

예를 들어 코드를 커밋하기 전에 린트하고 형식을 지정하는 후크를 설정할 것입니다.

이 예에서는 linter로 golangci-lint를 사용할 것이므로 here 지침을 사용하여 설치하십시오. 설치 후 해야 할 일은 .husky/hooks라는 이름의 pre-commit에 있는 샘플 후크 파일을 열고 linter를 실행하기 위한 명령을 추가하는 것입니다. 다음과 같이 보일 것입니다.

#!/bin/sh

golangci-lint run


또는 명령을 사용하여 후크를 추가하십시오.

$ husky add pre-commit "golangci-lint run"


그러나 코드를 보푸라기 전에 서식을 지정해야 하므로 lint 명령 앞에 파일에서 사용하는 서식 지정자에 대한 명령을 추가하십시오. 이 예에서는 내장 포맷터gofmt를 사용합니다.

#!/bin/sh

go fmt .
golangci-lint run


또는

$ husky add pre-commit "
            go fmt .
            golangci-lint run
    "


이것으로 우리는 모두 끝났습니다. 이제 커밋을 시도하면 git은 파일을 커밋하기 전에 추가한 두 명령을 실행합니다. 이렇게 하면 오류를 찾고 코드를 보기 좋게 포맷하는 데 도움이 됩니다.

결론



Git 후크는 매우 강력한 기능이며 허스키는 마찰이 거의 또는 전혀 없이 사용할 수 있도록 도와줍니다. 이 문서에서는 커밋하기 전에 자동으로 코드를 린트하고 형식을 지정하는 기본 후크를 만드는 방법을 배웠습니다. 그러나 이것이 이 기사에서 얻은 지식을 사용하여 무엇이든 만들 수 있고 필요한 모든 것을 달성하는 데 도움이 되는 사용자 정의 후크를 만드는 데 적용할 수 있는 유일한 후크는 아닙니다.

좋은 웹페이지 즐겨찾기