repos: # ========================================================================== # Golang Pre-Commit Hooks | https://github.com/tekwizely/pre-commit-golang # # Visit the project home page to learn more about the available Hooks, # including useful arguments you might want to pass into them. # # File-Based Hooks: # Run against matching staged files individually. # # Module-Based Hooks: # Run against module root folders containing matching staged files. # # Package-Based Hooks: # Run against folders containing one or more staged files. # # Repo-Based Hooks: # Run against the entire repo. # The hooks only run once (if any matching files are staged), # and are NOT provided the list of staged files, # # Hook Suffixes # Hooks have suffixes in their name that indicate their targets: # # +-----------+--------------+ # | Suffix | Target | # |-----------+--------------+ # | | Files | # | -mod | Module | # | -pkg | Package | # | -repo-mod | All Modules | # | -repo-pkg | All Packages | # +-----------+--------------+ # # ! Multiple Hook Invocations # ! Due to OS command-line-length limits, Pre-Commit can invoke a hook # ! multiple times if a large number of files are staged. # ! For file and repo-based hooks, this isn't an issue, but for module # ! and package-based hooks, there is a potential for the hook to run # ! against the same module or package multiple times, duplicating any # ! errors or warnings. # # Useful Hook Parameters: # - id: hook-id # args: [arg1, arg2, ..., '--'] # Pass options ('--' is optional) # always_run: true # Run even if no matching files staged # alias: hook-alias # Create an alias # # Passing Options To Hooks: # If your options contain a reference to an existing file, then you will # need to use a trailing '--' argument to separate the hook options from # the modified-file list that Pre-Commit passes into the hook. # NOTE: For repo-based hooks, '--' is not needed. # # Always Run: # By default, hooks ONLY run when matching file types are staged. # When configured to "always_run", a hook is executed as if EVERY matching # file were staged. # # Aliases: # Consider adding aliases to longer-named hooks for easier CLI usage. # ========================================================================== - repo: https://github.com/tekwizely/pre-commit-golang rev: master hooks: # # Go Build # # - id: go-build-mod # - id: go-build-pkg # - id: go-build-repo-mod # - id: go-build-repo-pkg # # Go Test # - id: go-test-mod # - id: go-test-pkg # - id: go-test-repo-mod # - id: go-test-repo-pkg # # Go Vet # # - id: go-vet - id: go-vet-mod # - id: go-vet-pkg # - id: go-vet-repo-mod # - id: go-vet-repo-pkg # # Formatters # # - id: go-fmt # - id: go-imports # Replaces go-fmt - id: go-returns # Replaces go-imports & go-fmt # # Style Checkers # - id: go-lint - id: go-critic # # GolangCI-Lint # - Fast Multi-Linter # - Can be configured to replace MOST other hooks # - Supports repo config file for configuration # - https://github.com/golangci/golangci-lint # # - id: golangci-lint - id: golangci-lint-mod # - id: golangci-lint-pkg # - id: golangci-lint-repo-mod # - id: golangci-lint-repo-pkg - repo: https://github.com/prettier/prettier rev: "master" hooks: - id: prettier