import-boss

command
v0.18.5-rc.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 29, 2020 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

import-boss enforces import restrictions in a given repository.

When a directory is verified, import-boss looks for a file called ".import-restrictions". If this file is not found, parent directories will be recursively searched.

If an ".import-restrictions" file is found, then all imports of the package are checked against each "rule" in the file. A rule consists of three parts:

- A SelectorRegexp, to select the import paths that the rule applies to.

- A list of AllowedPrefixes

- A list of ForbiddenPrefixes

An import is allowed if it matches at least one allowed prefix and does not match any forbidden prefix. An example file looks like this:

{
  "Rules": [
    {
      "SelectorRegexp": "k8s[.]io",
      "AllowedPrefixes": [
        "k8s.io/gengo/examples",
        "k8s.io/kubernetes/third_party"
      ],
      "ForbiddenPrefixes": [
        "k8s.io/kubernetes/pkg/third_party/deprecated"
      ]
    },
    {
      "SelectorRegexp": "^unsafe$",
      "AllowedPrefixes": [
      ],
      "ForbiddenPrefixes": [
        ""
      ]
    }
  ]
}

Note the second block explicitly matches the unsafe package, and forbids it ("" is a prefix of everything).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL