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).

    Source Files