<commit_before>{
    "mandatory": [
        "FROM"
    ],
    "recommended": [
        "MAINTAINER"
    ],
    "unique": [
        "CMD",
        "ENTRYPOINT",
        "FROM"
    ],
    "all": [
        "ADD",
        "CMD",
        "COPY",
        "ENTRYPOINT",
        "ENV",
        "EXPOSE",
        "FROM",
        "LABEL",
        "MAINTAINER",
        "ONBUILD",
        "RUN",
        "USER",
        "VOLUME",
        "WORKDIR"
    ],
    "pointless_commands": [
        "free",
        "ifconfig",
        "kill",
        "mount",
        "nano",
        "ps",
        "vim",
        "shutdown",
        "ssh",
        "top"
    ],
    "rules": [
        {
            "id": "1000",
            "message": "'{token}' is mandatory",
            "category": "NotFound"
        },
        {
            "id": "1001",
            "message": "'{token}' must be present only once",
            "category": "TooMuch"
        },
        {
            "id": "2000",
            "message": "A tag should be specified for the '{image}' image",
            "category": "BadPractice"
        },
        {
            "id": "2001",
            "message": "Using the 'latest' tag isn't wise, as it won't always be a reference to the same version",
            "category": "BadPractice"
        },
        {
            "id": "2002",
            "message": "Use 'WORKDIR' to change directory",
            "category": "BadPractice"
        },
        {
            "id": "2003",
            "message": "Some shell commands like '{command}' are pointless in containers",
            "category": "Pointless"
        },
        {
            "id": "2004",
            "message": "'WORKDIR' path should be absolute",
            "category": "BadPractice"
        },
        {
            "id": "2005",
            "message": "'EXPOSE' port ({port}) must be in 1-65535 range",
            "category": "BadValue"
        },
        {
            "id": "2006",
            "message": "Prefer 'COPY' over 'ADD' for adding files and directories to a container. 'ADD' sounds to much magic",
            "category": "BadPractice"
        },
        {
            "id": "2007",
            "message": "Be careful changing to root user",
            "category": "BadPractice"
        },
        {
            "id": "2008",
            "message": "Avoid running 'apt-get upgrade' in container. Move to a newer image instead",
            "category": "BadPractice"
        },
        {
            "id": "2009",
        },
        {
            "id": "2010",
            "message": "Missing '{parameter}' in your '{command}' command",
            "category": "BadPractice"
        },<commit_msg>Add error message for bad protocol when EXPOSE-ing ports<commit_after>{
    "mandatory": [
        "FROM"
    ],
    "recommended": [
        "MAINTAINER"
    ],
    "unique": [
        "CMD",
        "ENTRYPOINT",
        "FROM"
    ],
    "all": [
        "ADD",
        "CMD",
        "COPY",
        "ENTRYPOINT",
        "ENV",
        "EXPOSE",
        "FROM",
        "LABEL",
        "MAINTAINER",
        "ONBUILD",
        "RUN",
        "USER",
        "VOLUME",
        "WORKDIR"
    ],
    "pointless_commands": [
        "free",
        "ifconfig",
        "kill",
        "mount",
        "nano",
        "ps",
        "vim",
        "shutdown",
        "ssh",
        "top"
    ],
    "rules": [
        {
            "id": "1000",
            "message": "'{token}' is mandatory",
            "category": "NotFound"
        },
        {
            "id": "1001",
            "message": "'{token}' must be present only once",
            "category": "TooMuch"
        },
        {
            "id": "2000",
            "message": "A tag should be specified for the '{image}' image",
            "category": "BadPractice"
        },
        {
            "id": "2001",
            "message": "Using the 'latest' tag isn't wise, as it won't always be a reference to the same version",
            "category": "BadPractice"
        },
        {
            "id": "2002",
            "message": "Use 'WORKDIR' to change directory",
            "category": "BadPractice"
        },
        {
            "id": "2003",
            "message": "Some shell commands like '{command}' are pointless in containers",
            "category": "Pointless"
        },
        {
            "id": "2004",
            "message": "'WORKDIR' path should be absolute",
            "category": "BadPractice"
        },
        {
            "id": "2005",
            "message": "'EXPOSE' port ({port}) must be in 1-65535 range",
            "category": "BadValue"
        },
        {
            "id": "2006",
            "message": "Prefer 'COPY' over 'ADD' for adding files and directories to a container. 'ADD' sounds to much magic",
            "category": "BadPractice"
        },
        {
            "id": "2007",
            "message": "Be careful changing to root user",
            "category": "BadPractice"
        },
        {
            "id": "2008",
            "message": "Avoid running 'apt-get upgrade' in container. Move to a newer image instead",
            "category": "BadPractice"
        },
        {
            "id": "2009",
            "message": "Protocol must be either tcp or udp",
            "category": "BadValue"
        },
        {
            "id": "2010",
            "message": "Missing '{parameter}' in your '{command}' command",
            "category": "BadPractice"
        },
{'fraction_non_alphanumeric': 0.15527610716238383, 'fraction_numerical': 0.02114087843994897, 'mean_word_length': 1.3039462636439967, 'pattern_counts': {'":': 88, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1324514', 'n_tokens_mistral': 1662, 'n_tokens_neox': 1537, 'n_words': 420}