2 回答

TA貢獻1966條經(jīng)驗 獲得超4個贊
在您.pre-commit-config.yaml
的types
設(shè)置中text
,它會將所有文本(如文件)傳遞給staticcheck
,但它只期望go-files
。
你可能想要types: [go]
。

TA貢獻1877條經(jīng)驗 獲得超6個贊
您的配置很接近,但有一些可以改進的地方?,F(xiàn)在你正在安裝一個 noopgolang存儲庫,然后同時運行./...(golang 中的所有內(nèi)容)和text存儲庫中的所有文件(可能不是你想要的?。?/p>
首先讓我們解決 noop 存儲庫——language: golang指示pre-commit它應(yīng)該如何安裝掛鉤本身——在這種情況下你沒有告訴它安裝任何東西(repo: local掛鉤通常additional_dependencies用來安裝東西)
假設(shè)您想要預(yù)提交來管理安裝(畢竟這是預(yù)提交要點的一部分——它管理您的安裝,所以您不需要指導(dǎo)您的貢獻者如何安裝所有東西)——對于你會告訴 pre-commit 安裝這樣的東西:
# ...
language: golang
additional_dependencies: [honnef.co/go/tools/cmd/staticcheck@2022.1.2]
# ...
現(xiàn)在讓我們來處理正在傳遞的文件——上面的@jkittner 正中要害,但我會詳細說明一下。
pre-commit的參數(shù)模式:
您的掛鉤應(yīng)該期望收到該args值,然后是暫存文件列表。
然后從過濾文件類型:
text- 文件是否看起來像文本文件
將它們放在一起,您當(dāng)前的配置就像運行一樣staticcheck -tests=false ./... $(git ls-files)(假設(shè)您只有文本文件,我所知道的過濾掉二進制文件的 shell 方法并不是很好)
您可能想過濾掉 go 文件,并且您可能不想對每個文件進行雙重檢查——試試這個:
# ...
entry: staticcheck -tests=false
types: [go]
# ...
或者,如果你總是想運行所有的東西(我不推薦,它會一直變慢?。┠憧梢躁P(guān)閉預(yù)提交的文件處理
# ...
entry: staticcheck -tests=false ./...
pass_filenames: false
always_run: true
# ...
免責(zé)聲明:我寫了預(yù)提交
- 2 回答
- 0 關(guān)注
- 406 瀏覽
添加回答
舉報