這是我的.pre-commit-config.yaml檔案的內容,
repos:
- repo: local
hooks:
- id: static-checks-pramod
name: Static Analysis
description: This hook does static analysis
entry: staticcheck -tests=false ./...
language: golang
types: [text]
在本地為所有檔案在本地運行掛鉤時,我遇到了以下錯誤,
pramodchoudhari@Pramods-MacBook-Pro-2 my-repo % pre-commit run --all-files
Static Analysis..........................................................Failed
- hook id: static-checks-pramod
- exit code: 1
-: named files must be .go files: ./...
-: named files must be .go files: ./...
-: named files must be .go files: ./...
-: named files must be .go files: ./...
-: named files must be .go files: ./...
-: named files must be .go files: ./...
-: named files must be .go files: ./...
-: named files must be .go files: ./...
但是如果我在本地運行 staticcheck 命令,它可以正常作業,如下所示,
pramodchoudhari@Pramods-MacBook-Pro-2 my-repo % staticcheck -tests=false ./...
pramodchoudhari@Pramods-MacBook-Pro-2 my-repo %
我不確定我在預提交配置中做錯了什么。
PS:我正在使用這個linter 對我的 repo 進行靜態分析
uj5u.com熱心網友回復:
在您.pre-commit-config.yaml的types設定為text,這會將所有文本(如檔案)傳遞給 staticcheck ,但它只需要 go 檔案。
你可能想要types: [go]。
uj5u.com熱心網友回復:
您的配置很接近,但有一些可以改進的地方。現在你正在安裝一個 noopgolang存盤庫,然后運行./...(golang 中的所有內容)和text存盤庫中的所有檔案(可能不是你想要的!)
首先讓我們解決 noop 存盤庫——language: golang指示pre-commit它應該如何安裝鉤子本身——在這種情況下,你沒有告訴它安裝任何東西(repo: local鉤子通常additional_dependencies用來安裝東西)
假設您希望預先提交來管理安裝(畢竟這是預先提交的一部分——它管理你的安裝,所以你不需要指導你的貢獻者如何安裝所有東西)——對于你會告訴 pre-commit 安裝這樣的東西:
# ...
language: golang
additional_dependencies: [honnef.co/go/tools/cmd/[email protected]]
# ...
現在讓我們來處理正在傳遞的檔案——上面的@jkittner 很清楚這一點,但我會詳細說明一下。
pre-commit的論證模式:
您的鉤子應該期望收到該
args值,然后是暫存檔案串列。
然后從過濾檔案型別:
text- 檔案是否看起來像文本檔案
把它們放在一起,你當前的配置就像運行staticcheck -tests=false ./... $(git ls-files)(假設你只有文本檔案,我知道沒有一個很好的 shell 方法來過濾二進制檔案)
您可能想要過濾到 go 檔案,并且您可能不想對每個檔案都進行雙重檢查 - 試試這個:
# ...
entry: staticcheck -tests=false
types: [go]
# ...
或者,如果你總是想運行所有東西(我不建議這樣做,它會一直讓它變慢!)你可以改為關閉預提交對檔案的處理
# ...
entry: staticcheck -tests=false ./...
pass_filenames: false
always_run: true
# ...
免責宣告:我寫了預提交
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491534.html
標籤:混帐 去 githooks pre-commit.com
