【问题标题】:How do I use the new coursier language with pre-commit.com?如何在 pre-commit.com 中使用新的 coursier 语言?
【发布时间】:2021-02-16 16:44:42
【问题描述】:

我正在使用 pre-commit 2.8.2 并尝试让新的 coursier 语言正常工作。

我能够从 CLI 成功运行 coursier 命令。

❯ cs launch io.gitlab.arturbosch.detekt:detekt-cli:1.14.2 -M io.gitlab.arturbosch.detekt.cli.Main -r https://kotlin.bintray.com/kotlinx -- --help
Usage: detekt [options]
  Options:
    --auto-correct, -ac
      Allow rules to auto correct code if they support it. The default rule 
      sets do NOT support auto correcting and won't change any line in the 
      users code base. However custom rules can be written to support auto 
      correcting. The additional 'formatting' rule set, added with 
      '--plugins', does support it and needs this flag.
      Default: false

但是,我不清楚如何根据文档为 coursier 声明一个钩子。有没有使用 coursier 审查的例子?这就是我在 .pre-commit-hooks.yaml 中的内容。

---
- id: detekt
  name: detekt
  description: "Runs the Detekt static code analyzer."
  language: coursier
  entry: launch io.gitlab.arturbosch.detekt:detekt-cli:1.14.2 -M io.gitlab.arturbosch.detekt.cli.Main -r https://kotlin.bintray.com/kotlinx
  files: \.kt$
  require_serial: true

当我尝试使用钩子时,我得到了这个错误:

❯ pre-commit try-repo /Users/dustin/workspaces/pre-commit/pre-commit-jvm detekt --verbose --all-files
[WARNING] Creating temporary repo with uncommitted changes...
===============================================================================
Using config:
===============================================================================
repos:
-   repo: /var/folders/x7/18ntjgfd2j5gy1g1xlzby15w0000gq/T/tmpl5i4qu5r/shadow-repo
    rev: 233b290c180e6f6639f14689505ce5098c1c27ad
    hooks:
    -   id: detekt
===============================================================================
[INFO] Initializing environment for /var/folders/x7/18ntjgfd2j5gy1g1xlzby15w0000gq/T/tmpl5i4qu5r/shadow-repo.
[INFO] Installing environment for /var/folders/x7/18ntjgfd2j5gy1g1xlzby15w0000gq/T/tmpl5i4qu5r/shadow-repo.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/x7/18ntjgfd2j5gy1g1xlzby15w0000gq/T/tmpl5i4qu5r/repo3f0zmsce/.pre-commit-channel'
Check the log at /Users/dustin/.cache/pre-commit/pre-commit.log

【问题讨论】:

标签: pre-commit.com coursier


【解决方案1】:

找到解决方案:

  1. Coursier 语言也需要创建一个 .pre-commit-channel/detekt.json 文件。
    {
  "mainClass" : "io.gitlab.arturbosch.detekt.cli.Main",
  "repositories": [
    "central",
    "https://kotlin.bintray.com/kotlinx"
  ],
  "dependencies": [
    "io.gitlab.arturbosch.detekt:detekt-cli:1.14.2"
  ]
}
  1. 最后,将 .pre-commit-hooks.yaml 更新为
---
- id: detekt
  name: detekt
  description: "Runs the Detekt static code analyzer."
  language: coursier
  entry: detekt
  args: ["--config", "detekt-config.yml"]
  pass_filenames: false
  files: \.kt$
  require_serial: true

故意造成违规,被钩子抓住了。

❯ pre-commit try-repo /Users/dustin/workspaces/pre-commit/pre-commit-jvm detekt --all-files
[WARNING] Creating temporary repo with uncommitted changes...
===============================================================================
Using config:
===============================================================================
repos:
-   repo: /var/folders/x7/18ntjgfd2j5gy1g1xlzby15w0000gq/T/tmp23ad2fe4/shadow-repo
    rev: 452f70214d1960a82bff4c11523ecb36d5f6f333
    hooks:
    -   id: detekt
===============================================================================
[INFO] Initializing environment for /var/folders/x7/18ntjgfd2j5gy1g1xlzby15w0000gq/T/tmp23ad2fe4/shadow-repo.
[INFO] Installing environment for /var/folders/x7/18ntjgfd2j5gy1g1xlzby15w0000gq/T/tmp23ad2fe4/shadow-repo.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
detekt...................................................................Failed
- hook id: detekt
- exit code: 2

/Users/dustin/workspaces/spring-boot/custom-starters/txn-app-event-starter/src/main/java/com/dustinsand/txn/app/event/TransactionalApplicationEventAutoConfiguration.kt - 5min debt
        WildcardImport - [/Users/dustin/workspaces/spring-boot/custom-starters/txn-app-event-starter/src/main/java/com/dustinsand/txn/app/event/TransactionalApplicationEventAutoConfiguration.kt] at /Users/dustin/workspaces/spring-boot/custom-starters/txn-app-event-starter/src/main/java/com/dustinsand/txn/app/event/TransactionalApplicationEventAutoConfiguration.kt:7:1

Overall debt: 5min

Build failed with 1 weighted issues.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    相关资源
    最近更新 更多