Skip to content

Support for module plugin system via .custom-gcl.yml #1076

Open
@Thiht

Description

@Thiht

Welcome

  • Yes, I understand that the GitHub action repository is not the repository of golangci-lint itself.
  • Yes, I've searched similar issues on GitHub and didn't find any.

Your feature request related to a problem? Please describe.

golangci-lint features a way to support plugins automatically with a configuration file.

Basically it boils down to:

  • having a .custom-gcl.yml config file
  • building a custom binary using golangci-lint custom
  • declaring and using the custom plugin(s) in .golangci.yml
  • and then using the custom binary ./custom-gcl instead of golangci-lint
  • run custom-gcl instead of golangci-lint

Describe the solution you'd like.

I'd like for the GitHub action to:

  • download and install golangci-lint as usual (no change to the normal flow)
  • detect if a .custom-gcl.yml exists
  • compute the hash of the file and check the cache
  • if the cache is empty run golangci-lint custom (or use the cached version)
  • cache the result binary custom-gcl using a hash sum of the .custom-gcl.yml

Describe alternatives you've considered.

I'm currently doing the above manually without using the GitHub action

Additional context.

I want to use nilaway as part of my CI, but it's only supported with golangci-lint via the plugin system. See: https://github.com/uber-go/nilaway?tab=readme-ov-file#golangci-lint--v1570

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions