Pre-commit-Golang v1.0.0-beta.1 – 이제 사용자 지정 이동 도구 실행을 지원합니다.

3326 단어 goshowdevgithubgit

에 대한



pre-commit-golang은 단일 저장소, 모든 후크에 인수를 전달하는 기능 및 사용자 정의 이동 도구를 호출하는 기능을 지원하는 Golang용 pre-commit 후크 세트입니다.

빠른 링크: Project Page | Available Hooks | Installation | Releases

출시 발표: v1.0.0-beta.1



드디어 v1.0.0이 출시된다는 소식을 전하게 되어 기쁩니다!

이 릴리스는 내가 v1.0.0에 도달하고 싶었던 두 가지 가장 큰 것을 달성합니다.
  • 사용자 정의 도구 호출
  • 중복 코드 제거

  • 이 두 가지에 대해 자세히 알아보려면 아래를 읽어보세요.

    자세한 문서는 project's readme을 참조하십시오.

    참고: 이 릴리스의 새 코드 범위를 고려하여 야생에서 시간이 될 때까지 먼저 beta로 릴리스합니다.

    많은 로컬 테스트를 수행했지만 아직 프로젝트에 대한 자동화된 테스트 제품군이 없으므로 발견하면 잠시 시간을 내어 보고issues하십시오.


    사용자 정의 도구 호출



    이 프로젝트에는 많은 인기 있는 go 도구에 대한 내장 후크가 포함되어 있지만 사용자가 사용하려는 모든 도구에 대한 내장 후크를 포함하는 것은 불가능합니다.

    이러한 사용자를 수용할 수 있도록 이 릴리스에는 사용자 지정 이동 도구를 호출하는 기능이 도입되었습니다.
    my-cmd-* 후크를 사용하여 다양한 컨텍스트에서 사용자 정의 이동 도구를 호출할 수 있습니다.


    후크 ID
    설명

    my-cmd준비된 각 .go 파일에 대해 실행'$ARGS[0] [$ARGS[1:]] $FILE'my-cmd-mod준비된 각 .go 파일에 대해 실행'cd $(mod_root $FILE); $ARGS[0] [$ARGS[1:]] ./...'my-cmd-pkg준비된 각 .go 파일에 대해 실행'$ARGS[0] [$ARGS[1:]] ./$(dirname $FILE)'my-cmd-reporepo 루트 폴더에서 실행'$ARGS[0] [$ARGS[1:]]'my-cmd-repo-mod리포지토리의 각 모듈에 대해 실행'cd $(mod_root); $ARGS[0] [$ARGS[1:]] /...'my-cmd-repo-pkgrepo 루트 폴더에서 실행'$ARGS[0] [$ARGS[1:]] ./...'

    후크 구성



    my-cmd 후크는 실행할 도구 지정(예: 위의 args)을 포함하여 사전 커밋$ARGS[0] 속성을 통해 완전히 구성됩니다.



    다음은 아직 포함되지 않은 경우 my-cmd 후크를 사용하여 호출go test하는 방법의 예입니다.

    .pre-commit-config.yaml

    # ...
          hooks:
                # Run 'cd $(mod_root $FILE); go test ./...' for each staged .go file
            -   id: my-cmd-mod
                name: go-test-mod
                alias: go-test-mod
                args: [ go, test ]
    



    중복 코드 제거



    이 릴리스는 코드를 크게 리팩토링하여 공통 논리를 lib/폴더로 이동하고 가능한 한 많은 코드 중복을 제거합니다.

    예를 들어, 다음은 go-lint.sh의 전체 내용입니다.

    #!/usr/bin/env bash
    # shellcheck disable=SC2034  # vars used by sourced script
    error_on_output=0
    cmd=(golint -set_exit_status)
    # shellcheck source=lib/cmd-files.bash
    . "$(dirname "${0}")/lib/cmd-files.bash"
    


    그게 다야!

    이렇게 하면 새 후크를 훨씬 쉽게 추가할 수 있을 뿐만 아니라 모든 후크에서 향후 버그 수정 및 공통 코드 개선 사항을 활용할 수 있습니다.

    좋은 웹페이지 즐겨찾기