{
  "axioms": {
    "linguist": "language",
    "licensee": "license",
    "packagers": "packager"
  },
  "rules": {
    "all": {
      "license-file-exists:file-existence": [
        "error",
        { "files": ["LICENSE*", "COPYING*"], "nocase": true }
      ],
      "readme-file-exists:file-existence": [
        "error",
        { "files": ["README*"], "nocase": true }
      ],

      "contributing-file-exists:file-existence": [
        "error",
        { "files": ["{docs/,.github/,}CONTRIB*"] }
      ],
      "code-of-conduct-file-exists:file-existence": [
        "error",
        {
          "files": [
            "{docs/,.github/,}CODEOFCONDUCT*",
            "{docs/,.github/,}CODE-OF-CONDUCT*",
            "{docs/,.github/,}CODE_OF_CONDUCT*"
          ]
        }
      ],
      "changelog-file-exists:file-existence": [
        "error",
        { "files": ["CHANGELOG*"], "nocase": true }
      ],
      "security-file-exists:file-existence": [
        "error",
        { "files": ["{docs/,.github/,}SECURITY.md"] }
      ],
      "support-file-exists:file-existence": [
        "error",
        { "files": ["{docs/,.github/,}SUPPORT*"], "nocase": true }
      ],
      "readme-references-license:file-contents": [
        "error",
        { "files": ["README*"], "content": "license", "flags": "i" }
      ],
      "binaries-not-present:file-type-exclusion": [
        "error",
        { "type": ["**/*.exe", "**/*.dll", "!node_modules/**"] }
      ],
      "test-directory-exists:directory-existence": [
        "error",
        { "directories": ["**/test*", "**/specs"], "nocase": true }
      ],
      "integrates-with-ci:file-existence": [
        "error",
        {
          "files": [
            ".gitlab-ci.yml",
            ".travis.yml",
            "appveyor.yml",
            ".appveyor.yml",
            "circle.yml",
            ".circleci/config.yml",
            "Jenkinsfile",
            ".drone.yml",
            ".github/workflows/*",
            "azure-pipelines.yml"
          ]
        }
      ],
      "code-of-conduct-file-contains-email:file-contents": [
        "error",
        {
          "files": [
            "CODEOFCONDUCT*",
            "CODE-OF-CONDUCT*",
            "CODE_OF_CONDUCT*",
            ".github/CODEOFCONDUCT*",
            ".github/CODE-OF-CONDUCT*",
            ".github/CODE_OF_CONDUCT*"
          ],
          "content": ".+@.+\\..+",
          "flags": "i",
          "human-readable-content": "email address"
        }
      ],
      "source-license-headers-exist:file-starts-with": [
        "warning",
        {
          "files": ["**/*.js", "!node_modules/**"],
          "lineCount": 5,
          "patterns": ["Copyright", "License"],
          "flags": "i"
        }
      ],
      "github-issue-template-exists:file-existence": [
        "error",
        { "files": ["ISSUE_TEMPLATE*", ".github/ISSUE_TEMPLATE*"] }
      ],
      "github-pull-request-template-exists:file-existence": [
        "error",
        {
          "files": ["PULL_REQUEST_TEMPLATE*", ".github/PULL_REQUEST_TEMPLATE*"]
        }
      ]
    },
    "language=javascript": {
      "javascript-package-metadata-exists:file-existence": [
        "error",
        { "files": ["package.json"] }
      ]
    },
    "language=ruby": {
      "ruby-package-metadata-exists:file-existence": [
        "error",
        { "files": ["Gemfile"] }
      ]
    },
    "language=java": {
      "java-package-metadata-exists:file-existence": [
        "error",
        { "files": ["pom.xml", "build.xml", "build.gradle"] }
      ]
    },
    "license=*": {
      "license-detectable-by-licensee": ["error"]
    },
    "license=Apache-2.0": {
      "notice-file-exists:apache-notice": ["error"]
    },
    "language=python": {
      "python-package-metadata-exists:file-existence": [
        "error",
        { "files": ["setup.py", "requirements.txt"] }
      ]
    },
    "language=objective-c": {
      "objective-c-package-metadata-exists:file-existence": [
        "error",
        { "files": ["Cartfile", "Podfile", "*.podspec"] }
      ]
    },
    "language=swift": {
      "swift-package-metadata-exists:file-existence": [
        "error",
        { "files": ["Package.swift"] }
      ]
    },
    "language=erlang": {
      "erlang-package-metadata-exists:file-existence": [
        "error",
        { "files": ["rebar.config"] }
      ]
    },
    "language=elixir": {
      "elixir-package-metadata-exists:file-existence": [
        "error",
        { "files": ["mix.exs"] }
      ]
    }
  }
}
