Restrict imports in your go project.
This tools helps maintainers keep dependencies clean when they have multiple packages inside the same repo that shouldn't depend on each other.
By default this tool will search for a configuration file named import-restrictions.yaml in the current directory, you can give it another configuration file with the flag --configuration.
$ import-restrictions
$ import-restrictions --configuration my-configuration-file.yamlThe configuration file is a yaml file with an array of objects that must contain:
dirthe base directory of the packageforbiddenImportsa list of packages that are forbidden for all the packages insidedir.
For example:
- dir: ./cmd
forbiddenImports:
- bytes
- github.com/account/repoThe configuration is pretty self-explanatory, with a configuration file like the one above all the packages inside the directory cmd cannot import any of the bytes and github.com/account/repo packages.