• 3.0.1 467cb1f1e1

    Rebuild on current base images
    All checks were successful
    published / release-tag (push) Successful in 3s
    published / projectfile-is-valid (push) Successful in 5s
    published / runner-is-ready (push) Successful in 6s
    published / source-is-compliant (push) Successful in 7s
    published / source-is-secure (push) Successful in 8s
    published / signing-is-ready (push) Successful in 5s
    published / projectfile-is-ok (push) Successful in 4s
    published / binaries-are-built (amd64, linux) (push) Successful in 36s
    published / documentation-passes-lint (push) Successful in 50s
    published / source-passes-lint (push) Successful in 1m1s
    published / image-is-built (amd64) (push) Successful in 1m13s
    published / image-has-sbom (amd64) (push) Successful in 8s
    published / image-is-secure (amd64) (push) Successful in 10s
    published / container-is-verified (amd64) (push) Successful in 33s
    published / image-is-published (kiota) (push) Successful in 12s
    published / image-is-published (dockerhub) (push) Successful in 41s
    published / release-is-published (kiota, damian-buho/ignorelint, https://kiota.ch) (push) Successful in 3s
    published / release-is-published (codeberg, damian-buho/ignorelint, https://codeberg.org) (push) Successful in 5s
    published / release-notes-are-published (push) Successful in 5s
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-24 07:38:42 +00:00 | 13 commits to main since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB

    1 commit, 1 contributor, 7 hours since 3.0.0.

    Installation

    Container image

    Pull the published container image:

    Pull from DockerHub — linux/amd64

    docker pull damianbuho/ignorelint:3.0.1
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/ignorelint:3.0.1 ignorelint'
    

    This release also publishes the 3.0 and 3 tags — pull the precision you want to pin.

    If the registries above are unreachable, pull from the origin instead:

    Pull from Kiota — linux/amd64

    docker pull kiota.ch/damian-buho/ignorelint:3.0.1
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/damian-buho/ignorelint:3.0.1 ignorelint'
    

    Then run it as if it were installed — the alias runs every example as written against the current directory:

    ignorelint --help
    

    Prebuilt binary

    Download the prebuilt binary for your platform from this release:

    mkdir -p ~/.local/bin
    curl --fail --location --output ~/.local/bin/ignorelint https://kiota.ch/damian-buho/ignorelint/releases/download/3.0.1/ignorelint-linux-$(uname -m)
    chmod +x ~/.local/bin/ignorelint
    ~/.local/bin/ignorelint --help
    

    Published for: linux/amd64, linux/arm64

    To uninstall, delete that one file: rm ~/.local/bin/ignorelint.

    Usage

    Run it as a step in a GitHub Actions workflow:

    - uses: damian-buho/ignorelint@3.0.1
    

    The action takes these inputs:

    Input Default Description
    paths Newline-separated ignore files to lint. Empty enables auto-discovery.
    recursive false Search subdirectories for ignore files (skips hidden dirs, node_modules, symlinks).
    config_file Projectfile path read via pf-cli for the org.ignorelint policy subtree.
    fail_on error Severity threshold that fails the job: none | error | warn | info
    fix false Autofix deterministically fixable issues (workspace will be modified).
    disabled_rules Comma-separated rule tags to skip entirely (e.g. IG-001,IG-020).
    error Comma-separated rule tags to promote to error severity.
    warning Comma-separated rule tags to set to warning severity.
    info Comma-separated rule tags to demote to info severity.
    format Extra report format (same values as --format). Empty emits none; sarif acts like sarif: true.
    no_fail false Report every finding but always pass (beats fail_on).
    diff false Preview autofix changes in the human report without writing (cannot combine with fix).
    plain false Human report as one undecorated record per line.
    quiet false Only errors in the human report; suppresses notices (cannot combine with verbose).
    verbose false Show file discovery output on stderr (cannot combine with quiet).
    disable_ignore_pragma false Parse suppression directives but apply none.
    file_path_in_report Record this path instead of the linted one in machine-readable reports.
    sarif false Also emit SARIF for github/codeql-action/upload-sarif.
    upload_sarif false Upload the SARIF report to GitHub code scanning (implies sarif; needs security-events: write).
    comment false Post the human report as a sticky comment on the triggering pull request.
    version Image tag to pull (e.g. latest, 1.2.3). Empty follows the release the action is pinned to, else latest.
    image Override the full image reference. Takes precedence over version.
    github_token Token used to post PR comments. Defaults to the workflow github.token when empty.

    ignorelint

    $ ignorelint --help
    Description:
      Linter for *ignore files (.gitignore, .dockerignore, .eslintignore, etc.)
    
    Usage:
      ignorelint [options] [--] [<paths>...]
    
    Arguments:
      paths                                          Files to lint; none discovers them in the current directory, a lone - reads stdin
    
    Options:
          --fail-on=FAIL-ON                          Exit non-zero at this severity or worse (error|warn|info|none, default: error)
          --no-fail                                  Report every finding but always exit 0 (beats --fail-on)
          --plain                                    Human output as one undecorated path:line [CODE] severity: message record per line
          --file-path-in-report=FILE-PATH-IN-REPORT  Record this path instead of the linted one in machine-readable reports
          --format=FORMAT                            Output format (human|tty|gnu|json|checkstyle|junit|gitlab_codeclimate|codacy|sonarqube|sarif, default: human)
      -r, --recursive                                Search subdirectories for *ignore files (skips hidden dirs, node_modules, symlinks)
          --fix                                      Auto-fix deterministically fixable issues (IG-001,003,008,015,018,022,023,024)
          --diff                                     Preview auto-fix changes without writing (cannot combine with --fix)
          --stdin                                    Lint piped content instead of files (requires --file; a lone - path does the same)
          --file=FILE                                Filename for --stdin input (drives format detection)
          --disabled-rules=DISABLED-RULES            Skip rules entirely (comma-separated tags, e.g. IG-001,IG-020) (multiple values allowed)
          --error=ERROR                              Promote rules to error severity (comma-separated tags, e.g. IG-020) (multiple values allowed)
          --warning=WARNING                          Set rules to warning severity (comma-separated tags) (multiple values allowed)
          --info=INFO                                Demote rules to info severity (comma-separated tags; applied last) (multiple values allowed)
          --disable-ignore-pragma                    Parse suppression directives but apply none; IG-026 still lists them
          --config=CONFIG                            Projectfile read via pf-cli for the org.ignorelint policy subtree (default: ./projectfile.*)
      -h, --help                                     Display help for the given command. When no command is given display help for the ignorelint command
          --silent                                   Do not output any message
      -q, --quiet                                    Only errors are displayed. All other output is suppressed
      -V, --version                                  Display this application version
          --ansi|--no-ansi                           Force (or disable --no-ansi) ANSI output
      -n, --no-interaction                           Do not ask any interactive question
      -v|vv|vvv, --verbose                           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
    
    Help:
      When no path is given, discovers supported *ignore files in the current directory.
      Discovery and diagnostics go to stderr; stdout carries only the report.
    
      Environment variables:
        SHELL_VERBOSITY=1          Same as -v (-1 same as -q)
        IGNORELINT_FAIL_ON=LEVEL   Same as --fail-on (error|warn|info|none)
        IGNORELINT_NOFAIL=1        Same as --no-fail
        IGNORELINT_FORMAT=FORMAT   Same as --format
        IGNORELINT_FIX=1           Same as --fix
        IGNORELINT_RECURSIVE=1     Same as --recursive
        IGNORELINT_DISABLED_RULES=CODES Same as --disabled-rules
        IGNORELINT_OVERRIDE_ERROR=CODES Same as --error
        IGNORELINT_OVERRIDE_WARNING=CODES Same as --warning
        IGNORELINT_OVERRIDE_INFO=CODES Same as --info
        IGNORELINT_CONFIG=PATH     Same as --config
        IGNORELINT_PF_CLI_TIMEOUT=SECONDS Give pf-cli this long to answer (default 30)
        IGNORELINT_DISABLE_IGNORE_PRAGMA=1 Same as --disable-ignore-pragma
        IGNORELINT_FILE_PATH_IN_REPORT=PATH Same as --file-path-in-report
        NO_COLOR=1                 Disable colored output (also TERM=dumb)
        FORCE_COLOR=1              Color even when piped (--ansi and --no-ansi beat both)
    

    Examples and every command’s help are in Usage.

    Image digests

    A tag can move; a digest cannot. Pull this exact build:

    docker pull docker.io/damianbuho/ignorelint@sha256:37da8d778bd035560a8b5a6370f135f32c5d9a41dcff7cf92ace5f113664b9ae
    docker pull kiota.ch/damian-buho/ignorelint@sha256:37da8d778bd035560a8b5a6370f135f32c5d9a41dcff7cf92ace5f113664b9ae
    
    Platform Digest Size
    linux/amd64 sha256:d35e690f74e1073b5a1a8e683e9007ab7488fc01e912e789af7b1b376c0f45d5 95.7 MB

    Sizes are compressed layer bytes as stored in the registry.

    Verify

    Check that what you downloaded is what this project published.

    Container image

    The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.

    COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/ignorelint@sha256:37da8d778bd035560a8b5a6370f135f32c5d9a41dcff7cf92ace5f113664b9ae
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/damian-buho/ignorelint@sha256:37da8d778bd035560a8b5a6370f135f32c5d9a41dcff7cf92ace5f113664b9ae
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/ignorelint@sha256:37da8d778bd035560a8b5a6370f135f32c5d9a41dcff7cf92ace5f113664b9ae
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/damian-buho/ignorelint@sha256:37da8d778bd035560a8b5a6370f135f32c5d9a41dcff7cf92ace5f113664b9ae
    

    Full changes: https://kiota.ch/damian-buho/ignorelint/compare/3.0.0...3.0.1

    Downloads
  • 3.0.0 bffd2b4123

    3.0.0
    All checks were successful
    published / projectfile-is-valid (push) Successful in 6s
    published / release-tag (push) Successful in 3s
    published / source-is-compliant (push) Successful in 32s
    published / source-is-secure (push) Successful in 38s
    published / runner-is-ready (push) Successful in 1m17s
    published / projectfile-is-ok (push) Successful in 29s
    published / documentation-passes-lint (push) Successful in 2m13s
    published / signing-is-ready (push) Successful in 17s
    published / binaries-are-built (amd64, linux) (push) Successful in 1m21s
    published / source-passes-lint (push) Successful in 3m10s
    published / image-is-built (amd64) (push) Successful in 3m11s
    published / image-has-sbom (amd64) (push) Successful in 17s
    published / image-is-secure (amd64) (push) Successful in 22s
    published / container-is-verified (amd64) (push) Successful in 1m26s
    published / image-is-published (kiota) (push) Successful in 22s
    published / image-is-published (dockerhub) (push) Successful in 47s
    published / release-is-published (kiota, damian-buho/ignorelint, https://kiota.ch) (push) Successful in 3s
    published / release-is-published (codeberg, damian-buho/ignorelint, https://codeberg.org) (push) Successful in 6s
    published / release-notes-are-published (push) Successful in 8s
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-21 09:45:55 +00:00 | 15 commits to main since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB

    36 commits, 1 contributor, 6 days since 2.2.0.

    Upgrade notes

    • linter: report absent paths and dead globs only with a clue (622fd66)

    • linter: report a rooted shallow pattern only beside an unignored nested match (fe7f3e9)

    Features

    • seed ignorelint hint patterns from gitignore corpus (aae897c)
    • policy: bound the pf-cli lookup with IGNORELINT_PF_CLI_TIMEOUT (f9ac85d)
    • cli: report progress and timing on stderr and exit 130 on Ctrl-C (e2c9fb5)

    Bug fixes

    • cli: colour output only when stdout is a terminal (4ca04fd)
    • refactor CI workflows (new goals + preflight checks) (9e71c34)
    • workflows: move pins (2e256d2, f23fe10, 9858be5)
    • workflows: enable checks (1569551)
    • workflows: fix preflights (61deebe)
    • linter: list hint candidates from git instead of walking the tree (866bec7)
    • linter: stop dead-glob checks at the first match (9bc0ae9)
    • container: ship the pattern knowledge base and libyaml in the image build (65f5871)
    • deps: bump athena-console to 0.5.0 and drop its workarounds (3d958a5)

    Installation

    Container image

    Pull the published container image:

    Pull from DockerHub — linux/amd64

    docker pull damianbuho/ignorelint:3.0.0
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/ignorelint:3.0.0 ignorelint'
    

    This release also publishes the 3.0 and 3 tags — pull the precision you want to pin.

    If the registries above are unreachable, pull from the origin instead:

    Pull from Kiota — linux/amd64

    docker pull kiota.ch/damian-buho/ignorelint:3.0.0
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/damian-buho/ignorelint:3.0.0 ignorelint'
    

    Then run it as if it were installed — the alias runs every example as written against the current directory:

    ignorelint --help
    

    Prebuilt binary

    Download the prebuilt binary for your platform from this release:

    mkdir -p ~/.local/bin
    curl --fail --location --output ~/.local/bin/ignorelint https://kiota.ch/damian-buho/ignorelint/releases/download/3.0.0/ignorelint-linux-$(uname -m)
    chmod +x ~/.local/bin/ignorelint
    ~/.local/bin/ignorelint --help
    

    Published for: linux/amd64, linux/arm64

    To uninstall, delete that one file: rm ~/.local/bin/ignorelint.

    Usage

    Run it as a step in a GitHub Actions workflow:

    - uses: damian-buho/ignorelint@3.0.0
    

    The action takes these inputs:

    Input Default Description
    paths Newline-separated ignore files to lint. Empty enables auto-discovery.
    recursive false Search subdirectories for ignore files (skips hidden dirs, node_modules, symlinks).
    config_file Projectfile path read via pf-cli for the org.ignorelint policy subtree.
    fail_on error Severity threshold that fails the job: none | error | warn | info
    fix false Autofix deterministically fixable issues (workspace will be modified).
    disabled_rules Comma-separated rule tags to skip entirely (e.g. IG-001,IG-020).
    error Comma-separated rule tags to promote to error severity.
    warning Comma-separated rule tags to set to warning severity.
    info Comma-separated rule tags to demote to info severity.
    format Extra report format (same values as --format). Empty emits none; sarif acts like sarif: true.
    no_fail false Report every finding but always pass (beats fail_on).
    diff false Preview autofix changes in the human report without writing (cannot combine with fix).
    plain false Human report as one undecorated record per line.
    quiet false Only errors in the human report; suppresses notices (cannot combine with verbose).
    verbose false Show file discovery output on stderr (cannot combine with quiet).
    disable_ignore_pragma false Parse suppression directives but apply none.
    file_path_in_report Record this path instead of the linted one in machine-readable reports.
    sarif false Also emit SARIF for github/codeql-action/upload-sarif.
    upload_sarif false Upload the SARIF report to GitHub code scanning (implies sarif; needs security-events: write).
    comment false Post the human report as a sticky comment on the triggering pull request.
    version Image tag to pull (e.g. latest, 1.2.3). Empty follows the release the action is pinned to, else latest.
    image Override the full image reference. Takes precedence over version.
    github_token Token used to post PR comments. Defaults to the workflow github.token when empty.

    ignorelint

    $ ignorelint --help
    Description:
      Linter for *ignore files (.gitignore, .dockerignore, .eslintignore, etc.)
    
    Usage:
      ignorelint [options] [--] [<paths>...]
    
    Arguments:
      paths                                          Files to lint; none discovers them in the current directory, a lone - reads stdin
    
    Options:
          --fail-on=FAIL-ON                          Exit non-zero at this severity or worse (error|warn|info|none, default: error)
          --no-fail                                  Report every finding but always exit 0 (beats --fail-on)
          --plain                                    Human output as one undecorated path:line [CODE] severity: message record per line
          --file-path-in-report=FILE-PATH-IN-REPORT  Record this path instead of the linted one in machine-readable reports
          --format=FORMAT                            Output format (human|tty|gnu|json|checkstyle|junit|gitlab_codeclimate|codacy|sonarqube|sarif, default: human)
      -r, --recursive                                Search subdirectories for *ignore files (skips hidden dirs, node_modules, symlinks)
          --fix                                      Auto-fix deterministically fixable issues (IG-001,003,008,015,018,022,023,024)
          --diff                                     Preview auto-fix changes without writing (cannot combine with --fix)
          --stdin                                    Lint piped content instead of files (requires --file; a lone - path does the same)
          --file=FILE                                Filename for --stdin input (drives format detection)
          --disabled-rules=DISABLED-RULES            Skip rules entirely (comma-separated tags, e.g. IG-001,IG-020) (multiple values allowed)
          --error=ERROR                              Promote rules to error severity (comma-separated tags, e.g. IG-020) (multiple values allowed)
          --warning=WARNING                          Set rules to warning severity (comma-separated tags) (multiple values allowed)
          --info=INFO                                Demote rules to info severity (comma-separated tags; applied last) (multiple values allowed)
          --disable-ignore-pragma                    Parse suppression directives but apply none; IG-026 still lists them
          --config=CONFIG                            Projectfile read via pf-cli for the org.ignorelint policy subtree (default: ./projectfile.*)
      -h, --help                                     Display help for the given command. When no command is given display help for the ignorelint command
          --silent                                   Do not output any message
      -q, --quiet                                    Only errors are displayed. All other output is suppressed
      -V, --version                                  Display this application version
          --ansi|--no-ansi                           Force (or disable --no-ansi) ANSI output
      -n, --no-interaction                           Do not ask any interactive question
      -v|vv|vvv, --verbose                           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
    
    Help:
      When no path is given, discovers supported *ignore files in the current directory.
      Discovery and diagnostics go to stderr; stdout carries only the report.
    
      Environment variables:
        SHELL_VERBOSITY=1          Same as -v (-1 same as -q)
        IGNORELINT_FAIL_ON=LEVEL   Same as --fail-on (error|warn|info|none)
        IGNORELINT_NOFAIL=1        Same as --no-fail
        IGNORELINT_FORMAT=FORMAT   Same as --format
        IGNORELINT_FIX=1           Same as --fix
        IGNORELINT_RECURSIVE=1     Same as --recursive
        IGNORELINT_DISABLED_RULES=CODES Same as --disabled-rules
        IGNORELINT_OVERRIDE_ERROR=CODES Same as --error
        IGNORELINT_OVERRIDE_WARNING=CODES Same as --warning
        IGNORELINT_OVERRIDE_INFO=CODES Same as --info
        IGNORELINT_CONFIG=PATH     Same as --config
        IGNORELINT_PF_CLI_TIMEOUT=SECONDS Give pf-cli this long to answer (default 30)
        IGNORELINT_DISABLE_IGNORE_PRAGMA=1 Same as --disable-ignore-pragma
        IGNORELINT_FILE_PATH_IN_REPORT=PATH Same as --file-path-in-report
        NO_COLOR=1                 Disable colored output (also TERM=dumb)
        FORCE_COLOR=1              Color even when piped (--ansi and --no-ansi beat both)
    

    Examples and every command’s help are in Usage.

    Image digests

    A tag can move; a digest cannot. Pull this exact build:

    docker pull docker.io/damianbuho/ignorelint@sha256:ed958401f5734aa86e2f288e8c9a28fa8d6730e0f98c3f4169fa6a8c645ba752
    docker pull kiota.ch/damian-buho/ignorelint@sha256:ed958401f5734aa86e2f288e8c9a28fa8d6730e0f98c3f4169fa6a8c645ba752
    
    Platform Digest Size
    linux/amd64 sha256:d1dc188bc86cb2f1705d11007871b9d7914102ed26421f57f014294fead3d366 95.7 MB (−0.6 MB)

    Sizes are compressed layer bytes as stored in the registry.

    Verify

    Check that what you downloaded is what this project published.

    Container image

    The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.

    COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/ignorelint@sha256:ed958401f5734aa86e2f288e8c9a28fa8d6730e0f98c3f4169fa6a8c645ba752
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/damian-buho/ignorelint@sha256:ed958401f5734aa86e2f288e8c9a28fa8d6730e0f98c3f4169fa6a8c645ba752
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/ignorelint@sha256:ed958401f5734aa86e2f288e8c9a28fa8d6730e0f98c3f4169fa6a8c645ba752
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/damian-buho/ignorelint@sha256:ed958401f5734aa86e2f288e8c9a28fa8d6730e0f98c3f4169fa6a8c645ba752
    

    Full changes: https://kiota.ch/damian-buho/ignorelint/compare/2.2.0...3.0.0

    Downloads
  • 2.2.0 fabafe5fb5

    2.2.0
    All checks were successful
    published / deps-installed (push) Successful in 0s
    published / fetched (push) Successful in 0s
    published / source-is-tested (push) Successful in 0s
    published / projectfile-is-valid (push) Successful in 3s
    published / signing-is-ready (push) Successful in 5s
    published / source-is-compliant (push) Successful in 6s
    published / source-is-secure (push) Successful in 7s
    published / projectfile-is-ok (push) Successful in 4s
    published / binaries-are-built (amd64, linux) (push) Successful in 32s
    published / binaries-are-ok (push) Successful in 0s
    published / documentation-passes-lint (push) Successful in 48s
    published / documentation-is-ok (push) Successful in 0s
    published / source-passes-lint (push) Successful in 50s
    published / source-is-ok (push) Successful in 0s
    published / inputs-are-ok (push) Successful in 0s
    published / image-is-built (amd64) (push) Successful in 1m6s
    published / secrets-ready (push) Successful in 0s
    published / images-are-ok (push) Successful in 0s
    published / container-is-ok (push) Successful in 0s
    published / image-has-sbom (amd64) (push) Successful in 6s
    published / container-ready-to-test (push) Successful in 0s
    published / image-is-secure (amd64) (push) Successful in 7s
    published / container-is-diagnosed (push) Successful in 0s
    published / container-is-verified (amd64) (push) Successful in 25s
    published / image-is-ready (push) Successful in 0s
    published / artifacts-are-ok (push) Successful in 0s
    published / ready-to-publish (push) Successful in 0s
    published / publish-image (push) Successful in 0s
    published / image-is-signed (push) Successful in 0s
    published / image-is-attested (kiota) (push) Successful in 12s
    published / image-is-attested (dockerhub) (push) Successful in 40s
    published / release-is-published (kiota, damian-buho/ignorelint, https://kiota.ch) (push) Successful in 1s
    published / release-is-published (codeberg, damian-buho/ignorelint, https://codeberg.org) (push) Successful in 3s
    published / release-notes-are-published (push) Successful in 3s
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-14 08:56:43 +00:00 | 53 commits to dev since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB

    35 commits, 1 contributor, 3 days since 2.1.0.

    Features

    • scripts: add corpus survey of public repositories (46e1d46)
    • scripts: group corpus summary by severity (0540aca)
    • scripts: lint the corpus with a host binary and keep named runs (c27196a)
    • scripts: take the corpus top-list query from IGNORELINT_CORPUS_QUERY (4f670a4)
    • linter: name the **/ form when an anchored dead glob would match deeper (f7c421b)
    • release: attach releases to the Codeberg mirror (4742165)

    Bug fixes

    • linter: stop reporting dangling symlinks as missing paths (98a3b67)
    • linter: rewrite double negation only where npm cancels it (a93c4ab)
    • linter: flag only a space before # as space in pattern (531ff72)
    • linter: read # mid-pattern as literal and skip a leading BOM (efaf592)
    • linter: keep a duplicate that follows a line of opposite polarity (80852e2)
    • linter: lint .eslintignore with gitignore semantics (d9d4512)
    • linter: retire IG-011, a leading slash anchors a negation (eb28377)
    • linter: match a directory-only pattern's case only against a directory (2e6f37c)
    • linter: warn on a ** inside a path segment, which git reads as * (7a084bd)
    • linter: report a case-only near match as info that the path does not exist (4fb8880)
    • linter: anchor a dead-glob check when the pattern has a slash in the middle (e4d963a)
    • linter: anchor every dockerignore dead-glob check to the context root (4cbf795)
    • linter: report a ** in .helmignore as an error, Helm rejects the rule (ad89678)
    • linter: find an unanchored literal at any depth before reporting it missing (7e5dbac)
    • linter: warn on a trailing ** in .dockerignore, which Moby matches like * (820a952)
    • linter: report IG-005 and IG-006 once in .dockerignore (dffdd6f)
    • linter: warn instead of error on consecutive stars in .gitignore (67799fe)
    • linter: match npm built-in includes as npm-packlist does (da79334)

    Installation

    Container image

    Pull the published container image:

    Pull from DockerHub — linux/amd64

    docker pull damianbuho/ignorelint:2.2.0
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/ignorelint:2.2.0 ignorelint'
    

    This release also publishes the 2.2 and 2 tags — pull the precision you want to pin.

    If the registries above are unreachable, pull from the origin instead:

    Pull from Kiota — linux/amd64

    docker pull kiota.ch/damian-buho/ignorelint:2.2.0
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/damian-buho/ignorelint:2.2.0 ignorelint'
    

    Then run it as if it were installed — the alias runs every example as written against the current directory:

    ignorelint --help
    

    Prebuilt binary

    Download the prebuilt binary for your platform from this release:

    mkdir -p ~/.local/bin
    curl --fail --location --output ~/.local/bin/ignorelint https://kiota.ch/damian-buho/ignorelint/releases/download/2.2.0/ignorelint-linux-$(uname -m)
    chmod +x ~/.local/bin/ignorelint
    ~/.local/bin/ignorelint --help
    

    Published for: linux/amd64, linux/arm64

    Usage

    Run it as a step in a GitHub Actions workflow:

    - uses: damian-buho/ignorelint@2.2.0
    

    The action takes these inputs:

    Input Default Description
    paths Newline-separated ignore files to lint. Empty enables auto-discovery.
    recursive false Search subdirectories for ignore files (skips hidden dirs, node_modules, symlinks).
    config_file Projectfile path read via pf-cli for the org.ignorelint policy subtree.
    fail_on error Severity threshold that fails the job: none | error | warn | info
    fix false Autofix deterministically fixable issues (workspace will be modified).
    disabled_rules Comma-separated rule tags to skip entirely (e.g. IG-001,IG-020).
    error Comma-separated rule tags to promote to error severity.
    warning Comma-separated rule tags to set to warning severity.
    info Comma-separated rule tags to demote to info severity.
    format Extra report format (same values as --format). Empty emits none; sarif acts like sarif: true.
    no_fail false Report every finding but always pass (beats fail_on).
    diff false Preview autofix changes in the human report without writing (cannot combine with fix).
    plain false Human report as one undecorated record per line.
    quiet false Only errors in the human report; suppresses notices (cannot combine with verbose).
    verbose false Show file discovery output on stderr (cannot combine with quiet).
    disable_ignore_pragma false Parse suppression directives but apply none.
    file_path_in_report Record this path instead of the linted one in machine-readable reports.
    sarif false Also emit SARIF for github/codeql-action/upload-sarif.
    upload_sarif false Upload the SARIF report to GitHub code scanning (implies sarif; needs security-events: write).
    comment false Post the human report as a sticky comment on the triggering pull request.
    version Image tag to pull (e.g. latest, 1.2.3). Empty follows the release the action is pinned to, else latest.
    image Override the full image reference. Takes precedence over version.
    github_token Token used to post PR comments. Defaults to the workflow github.token when empty.

    ignorelint

    $ ignorelint --help
    Description:
      Linter for *ignore files (.gitignore, .dockerignore, .eslintignore, etc.)
    
    Usage:
      ignorelint [options] [--] [<paths>...]
    
    Arguments:
      paths                                          Files to lint; none discovers them in the current directory, a lone - reads stdin
    
    Options:
          --fail-on=FAIL-ON                          Exit non-zero at this severity or worse (error|warn|info|none, default: error)
          --no-fail                                  Report every finding but always exit 0 (beats --fail-on)
          --plain                                    Human output as one undecorated path:line [CODE] severity: message record per line
          --file-path-in-report=FILE-PATH-IN-REPORT  Record this path instead of the linted one in machine-readable reports
          --format=FORMAT                            Output format (human|tty|gnu|json|checkstyle|junit|gitlab_codeclimate|codacy|sonarqube|sarif, default: human)
      -r, --recursive                                Search subdirectories for *ignore files (skips hidden dirs, node_modules, symlinks)
          --fix                                      Auto-fix deterministically fixable issues (IG-001,003,008,015,018,022,023,024)
          --diff                                     Preview auto-fix changes without writing (cannot combine with --fix)
          --stdin                                    Lint piped content instead of files (requires --file; a lone - path does the same)
          --file=FILE                                Filename for --stdin input (drives format detection)
          --disabled-rules=DISABLED-RULES            Skip rules entirely (comma-separated tags, e.g. IG-001,IG-020) (multiple values allowed)
          --error=ERROR                              Promote rules to error severity (comma-separated tags, e.g. IG-020) (multiple values allowed)
          --warning=WARNING                          Set rules to warning severity (comma-separated tags) (multiple values allowed)
          --info=INFO                                Demote rules to info severity (comma-separated tags; applied last) (multiple values allowed)
          --disable-ignore-pragma                    Parse suppression directives but apply none; IG-026 still lists them
          --config=CONFIG                            Projectfile read via pf-cli for the org.ignorelint policy subtree (default: ./projectfile.*)
      -h, --help                                     Display help for the given command. When no command is given display help for the ignorelint command
          --silent                                   Do not output any message
      -q, --quiet                                    Only errors are displayed. All other output is suppressed
      -V, --version                                  Display this application version
          --ansi|--no-ansi                           Force (or disable --no-ansi) ANSI output
      -n, --no-interaction                           Do not ask any interactive question
      -v|vv|vvv, --verbose                           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
    
    Help:
      When no path is given, discovers supported *ignore files in the current directory.
      Discovery and diagnostics go to stderr; stdout carries only the report.
    
      Environment variables:
        SHELL_VERBOSITY=1          Same as -v (-1 same as -q)
        IGNORELINT_FAIL_ON=LEVEL   Same as --fail-on (error|warn|info|none)
        IGNORELINT_NOFAIL=1        Same as --no-fail
        IGNORELINT_FORMAT=FORMAT   Same as --format
        IGNORELINT_FIX=1           Same as --fix
        IGNORELINT_RECURSIVE=1     Same as --recursive
        IGNORELINT_DISABLED_RULES=CODES Same as --disabled-rules
        IGNORELINT_OVERRIDE_ERROR=CODES Same as --error
        IGNORELINT_OVERRIDE_WARNING=CODES Same as --warning
        IGNORELINT_OVERRIDE_INFO=CODES Same as --info
        IGNORELINT_CONFIG=PATH     Same as --config
        IGNORELINT_DISABLE_IGNORE_PRAGMA=1 Same as --disable-ignore-pragma
        IGNORELINT_FILE_PATH_IN_REPORT=PATH Same as --file-path-in-report
        NO_COLOR=1                 Disable colored output (also TERM=dumb)
        FORCE_COLOR=1              Color even when piped (--ansi and --no-ansi beat both)
    

    Examples and every command’s help are in Usage.

    Image digests

    A tag can move; a digest cannot. Pull this exact build:

    docker pull docker.io/damianbuho/ignorelint@sha256:7ffb25d40fc37cae512b45211758fb4276fdf652f4ffe2d37d501918adde5dd7
    docker pull kiota.ch/damian-buho/ignorelint@sha256:7ffb25d40fc37cae512b45211758fb4276fdf652f4ffe2d37d501918adde5dd7
    
    Platform Digest Size
    linux/amd64 sha256:c108805352f3f37dfe83a8651d50d7d16b669b4b29cb7ea59fbc20621e481e47 96.3 MB

    Sizes are compressed layer bytes as stored in the registry.

    Verify

    Check that what you downloaded is what this project published.

    Container image

    The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.

    COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/ignorelint@sha256:7ffb25d40fc37cae512b45211758fb4276fdf652f4ffe2d37d501918adde5dd7
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/damian-buho/ignorelint@sha256:7ffb25d40fc37cae512b45211758fb4276fdf652f4ffe2d37d501918adde5dd7
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/ignorelint@sha256:7ffb25d40fc37cae512b45211758fb4276fdf652f4ffe2d37d501918adde5dd7
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/damian-buho/ignorelint@sha256:7ffb25d40fc37cae512b45211758fb4276fdf652f4ffe2d37d501918adde5dd7
    

    Full changes: https://kiota.ch/damian-buho/ignorelint/compare/2.1.0...2.2.0

    Downloads
  • 2.1.0 e15f313396

    2.1.0
    All checks were successful
    published / fetched (push) Successful in 1s
    published / deps-installed (push) Successful in 1s
    published / projectfile-is-valid (push) Successful in 5s
    published / signing-is-ready (push) Successful in 5s
    published / source-is-compliant (push) Successful in 5s
    published / source-is-secure (push) Successful in 6s
    published / binaries-are-built (amd64, linux) (push) Successful in 37s
    published / documentation-passes-lint (push) Successful in 56s
    published / source-is-tested (push) Successful in 1s
    published / projectfile-is-ok (push) Successful in 4s
    published / source-passes-lint (push) Successful in 3m8s
    published / binaries-are-ok (push) Successful in 1s
    published / documentation-is-ok (push) Successful in 0s
    published / source-is-ok (push) Successful in 0s
    published / inputs-are-ok (push) Successful in 1s
    published / image-is-built (amd64) (push) Successful in 10m1s
    published / secrets-ready (push) Successful in 1s
    published / image-has-sbom (amd64) (push) Successful in 10s
    published / image-is-secure (amd64) (push) Successful in 12s
    published / images-are-ok (push) Successful in 0s
    published / container-is-ok (push) Successful in 0s
    published / container-ready-to-test (push) Successful in 0s
    published / container-is-diagnosed (push) Successful in 0s
    published / container-is-verified (amd64) (push) Successful in 54s
    published / image-is-ready (push) Successful in 0s
    published / artifacts-are-ok (push) Successful in 0s
    published / ready-to-publish (push) Successful in 0s
    published / publish-image (push) Successful in 1s
    published / image-is-signed (push) Successful in 0s
    published / image-is-attested (kiota) (push) Successful in 55s
    published / image-is-attested (dockerhub) (push) Successful in 2m56s
    published / release-is-published (push) Successful in 5s
    published / release-notes-are-published (push) Successful in 5s
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-11 01:44:32 +00:00 | 89 commits to dev since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB

    20 commits, 1 contributor, 20 hours since 2.0.3.

    Features

    • action: expose output format and lint controls (5c7aee8)
    • container: bundle pf-cli in the runtime image (d99df49)

    Bug fixes

    • policy: spell out pf-cli --path-file (298d615)
    • correct pf-cli argument (091ab56)

    Installation

    Container image

    Pull the published container image:

    Pull from DockerHub — linux/amd64

    docker pull damianbuho/ignorelint:2.1.0
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/ignorelint:2.1.0 ignorelint'
    

    This release also publishes the 2.1 and 2 tags — pull the precision you want to pin.

    If the registries above are unreachable, pull from the origin instead:

    Pull from Kiota — linux/amd64

    docker pull kiota.ch/damian-buho/ignorelint:2.1.0
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/damian-buho/ignorelint:2.1.0 ignorelint'
    

    Then run it as if it were installed — the alias runs every example as written against the current directory:

    ignorelint --help
    

    Prebuilt binary

    Download the prebuilt binary for your platform from this release:

    mkdir -p ~/.local/bin
    curl --fail --location --output ~/.local/bin/ignorelint https://kiota.ch/damian-buho/ignorelint/releases/download/2.1.0/ignorelint-linux-$(uname -m)
    chmod +x ~/.local/bin/ignorelint
    ~/.local/bin/ignorelint --help
    

    Published for: linux/amd64, linux/arm64

    Usage

    Run it as a step in a GitHub Actions workflow:

    - uses: damian-buho/ignorelint@2.1.0
    

    The action takes these inputs:

    Input Default Description
    paths Newline-separated ignore files to lint. Empty enables auto-discovery.
    recursive false Search subdirectories for ignore files (skips hidden dirs, node_modules, symlinks).
    config_file Projectfile path read via pf-cli for the org.ignorelint policy subtree.
    fail_on error Severity threshold that fails the job: none | error | warn | info
    fix false Autofix deterministically fixable issues (workspace will be modified).
    disabled_rules Comma-separated rule tags to skip entirely (e.g. IG-001,IG-020).
    error Comma-separated rule tags to promote to error severity.
    warning Comma-separated rule tags to set to warning severity.
    info Comma-separated rule tags to demote to info severity.
    format Extra report format (same values as --format). Empty emits none; sarif acts like sarif: true.
    no_fail false Report every finding but always pass (beats fail_on).
    diff false Preview autofix changes in the human report without writing (cannot combine with fix).
    plain false Human report as one undecorated record per line.
    quiet false Only errors in the human report; suppresses notices (cannot combine with verbose).
    verbose false Show file discovery output on stderr (cannot combine with quiet).
    disable_ignore_pragma false Parse suppression directives but apply none.
    file_path_in_report Record this path instead of the linted one in machine-readable reports.
    sarif false Also emit SARIF for github/codeql-action/upload-sarif.
    upload_sarif false Upload the SARIF report to GitHub code scanning (implies sarif; needs security-events: write).
    comment false Post the human report as a sticky comment on the triggering pull request.
    version Image tag to pull (e.g. latest, 1.2.3). Empty follows the release the action is pinned to, else latest.
    image Override the full image reference. Takes precedence over version.
    github_token Token used to post PR comments. Defaults to the workflow github.token when empty.

    ignorelint

    $ ignorelint --help
    Description:
      Linter for *ignore files (.gitignore, .dockerignore, .eslintignore, etc.)
    
    Usage:
      ignorelint [options] [--] [<paths>...]
    
    Arguments:
      paths                                          Files to lint; none discovers them in the current directory, a lone - reads stdin
    
    Options:
          --fail-on=FAIL-ON                          Exit non-zero at this severity or worse (error|warn|info|none, default: error)
          --no-fail                                  Report every finding but always exit 0 (beats --fail-on)
          --plain                                    Human output as one undecorated path:line [CODE] severity: message record per line
          --file-path-in-report=FILE-PATH-IN-REPORT  Record this path instead of the linted one in machine-readable reports
          --format=FORMAT                            Output format (human|tty|gnu|json|checkstyle|junit|gitlab_codeclimate|codacy|sonarqube|sarif, default: human)
      -r, --recursive                                Search subdirectories for *ignore files (skips hidden dirs, node_modules, symlinks)
          --fix                                      Auto-fix deterministically fixable issues (IG-001,002,003,008,015,018,022,023,024)
          --diff                                     Preview auto-fix changes without writing (cannot combine with --fix)
          --stdin                                    Lint piped content instead of files (requires --file; a lone - path does the same)
          --file=FILE                                Filename for --stdin input (drives format detection)
          --disabled-rules=DISABLED-RULES            Skip rules entirely (comma-separated tags, e.g. IG-001,IG-020) (multiple values allowed)
          --error=ERROR                              Promote rules to error severity (comma-separated tags, e.g. IG-020) (multiple values allowed)
          --warning=WARNING                          Set rules to warning severity (comma-separated tags) (multiple values allowed)
          --info=INFO                                Demote rules to info severity (comma-separated tags; applied last) (multiple values allowed)
          --disable-ignore-pragma                    Parse suppression directives but apply none; IG-026 still lists them
          --config=CONFIG                            Projectfile read via pf-cli for the org.ignorelint policy subtree (default: ./projectfile.*)
      -h, --help                                     Display help for the given command. When no command is given display help for the ignorelint command
          --silent                                   Do not output any message
      -q, --quiet                                    Only errors are displayed. All other output is suppressed
      -V, --version                                  Display this application version
          --ansi|--no-ansi                           Force (or disable --no-ansi) ANSI output
      -n, --no-interaction                           Do not ask any interactive question
      -v|vv|vvv, --verbose                           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
    
    Help:
      When no path is given, discovers supported *ignore files in the current directory.
      Discovery and diagnostics go to stderr; stdout carries only the report.
    
      Environment variables:
        SHELL_VERBOSITY=1          Same as -v (-1 same as -q)
        IGNORELINT_FAIL_ON=LEVEL   Same as --fail-on (error|warn|info|none)
        IGNORELINT_NOFAIL=1        Same as --no-fail
        IGNORELINT_FORMAT=FORMAT   Same as --format
        IGNORELINT_FIX=1           Same as --fix
        IGNORELINT_RECURSIVE=1     Same as --recursive
        IGNORELINT_DISABLED_RULES=CODES Same as --disabled-rules
        IGNORELINT_OVERRIDE_ERROR=CODES Same as --error
        IGNORELINT_OVERRIDE_WARNING=CODES Same as --warning
        IGNORELINT_OVERRIDE_INFO=CODES Same as --info
        IGNORELINT_CONFIG=PATH     Same as --config
        IGNORELINT_DISABLE_IGNORE_PRAGMA=1 Same as --disable-ignore-pragma
        IGNORELINT_FILE_PATH_IN_REPORT=PATH Same as --file-path-in-report
        NO_COLOR=1                 Disable colored output (also TERM=dumb)
        FORCE_COLOR=1              Color even when piped (--ansi and --no-ansi beat both)
    

    Examples and every command’s help are in Usage.

    Image digests

    A tag can move; a digest cannot. Pull this exact build:

    docker pull docker.io/damianbuho/ignorelint@sha256:2e801f0a7a96078ba58e9414032ab681e7b7843b212604ca1ffb17dedface3eb
    docker pull kiota.ch/damian-buho/ignorelint@sha256:2e801f0a7a96078ba58e9414032ab681e7b7843b212604ca1ffb17dedface3eb
    
    Platform Digest Size
    linux/amd64 sha256:5f4f8f44b43363a21be69e99586544bc5114c317c211326793c5bdfdbe33773e 96.2 MB (+5.7 MB)

    Sizes are compressed layer bytes as stored in the registry.

    Verify

    Check that what you downloaded is what this project published.

    Container image

    The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.

    COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/ignorelint@sha256:2e801f0a7a96078ba58e9414032ab681e7b7843b212604ca1ffb17dedface3eb
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/damian-buho/ignorelint@sha256:2e801f0a7a96078ba58e9414032ab681e7b7843b212604ca1ffb17dedface3eb
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/ignorelint@sha256:2e801f0a7a96078ba58e9414032ab681e7b7843b212604ca1ffb17dedface3eb
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/damian-buho/ignorelint@sha256:2e801f0a7a96078ba58e9414032ab681e7b7843b212604ca1ffb17dedface3eb
    

    Full changes: https://kiota.ch/damian-buho/ignorelint/compare/2.0.3...2.1.0

    Downloads
  • 2.0.3 ac13f8a433

    2.0.3
    All checks were successful
    published / deps-installed (push) Successful in 0s
    published / fetched (push) Successful in 0s
    published / projectfile-is-valid (push) Successful in 4s
    published / signing-is-ready (push) Successful in 5s
    published / source-is-compliant (push) Successful in 6s
    published / source-is-secure (push) Successful in 8s
    published / source-is-tested (push) Successful in 0s
    published / projectfile-is-ok (push) Successful in 6s
    published / binaries-are-built (amd64, linux) (push) Successful in 58s
    published / documentation-passes-lint (push) Successful in 55s
    published / binaries-are-ok (push) Successful in 0s
    published / documentation-is-ok (push) Successful in 0s
    published / source-passes-lint (push) Successful in 1m1s
    published / source-is-ok (push) Successful in 0s
    published / inputs-are-ok (push) Successful in 0s
    published / image-is-built (amd64) (push) Successful in 3m55s
    published / secrets-ready (push) Successful in 0s
    published / images-are-ok (push) Successful in 0s
    published / container-is-ok (push) Successful in 0s
    published / container-ready-to-test (push) Successful in 0s
    published / container-is-diagnosed (push) Successful in 0s
    published / image-has-sbom (amd64) (push) Successful in 10s
    published / image-is-secure (amd64) (push) Successful in 12s
    published / container-is-verified (amd64) (push) Successful in 30s
    published / image-is-ready (push) Successful in 0s
    published / artifacts-are-ok (push) Successful in 0s
    published / ready-to-publish (push) Successful in 0s
    published / publish-image (push) Successful in 0s
    published / image-is-signed (push) Successful in 0s
    published / image-is-attested (kiota) (push) Successful in 12s
    published / image-is-attested (dockerhub) (push) Successful in 38s
    published / release-is-published (push) Successful in 3s
    published / release-notes-are-published (push) Successful in 5s
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-10 00:51:53 +00:00 | 110 commits to dev since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB

    23 commits, 1 contributor, 3 days since 2.0.2.

    Bug fixes

    • assert on a here-string, not a grep -q pipeline (1df65a3)

    Performance

    • container: declare M6E_VERSION next to the user stage (e3403b8)

    Installation

    Container image

    Pull the published container image:

    Pull from DockerHub — linux/amd64

    docker pull damianbuho/ignorelint:2.0.3
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws damianbuho/ignorelint:2.0.3 ignorelint'
    

    This release also publishes the 2.0 and 2 tags — pull the precision you want to pin.

    If the registries above are unreachable, pull from the origin instead:

    Pull from Kiota — linux/amd64

    docker pull kiota.ch/damian-buho/ignorelint:2.0.3
    alias ignorelint='docker run --rm --user "$(id -u):$(id -g)" --group-add 0 --volume "$PWD:/app/ws" --workdir /app/ws kiota.ch/damian-buho/ignorelint:2.0.3 ignorelint'
    

    Then run it as if it were installed — the alias runs every example as written against the current directory:

    ignorelint --help
    

    Prebuilt binary

    Download the prebuilt binary for your platform from this release:

    mkdir -p ~/.local/bin
    curl --fail --location --output ~/.local/bin/ignorelint https://kiota.ch/damian-buho/ignorelint/releases/download/2.0.3/ignorelint-linux-$(uname -m)
    chmod +x ~/.local/bin/ignorelint
    ~/.local/bin/ignorelint --help
    

    Published for: linux/amd64, linux/arm64

    Usage

    Run it as a step in a GitHub Actions workflow:

    - uses: damian-buho/ignorelint@2.0.3
    

    The action takes these inputs:

    Input Default Description
    paths Newline-separated ignore files to lint. Empty enables auto-discovery.
    recursive false Search subdirectories for ignore files (skips hidden dirs, node_modules, symlinks).
    config_file Projectfile path read via pf-cli for the org.ignorelint policy subtree.
    fail_on error Severity threshold that fails the job: none | error | warn | info
    fix false Autofix deterministically fixable issues (workspace will be modified).
    disabled_rules Comma-separated rule tags to skip entirely (e.g. IG-001,IG-020).
    error Comma-separated rule tags to promote to error severity.
    warning Comma-separated rule tags to set to warning severity.
    info Comma-separated rule tags to demote to info severity.
    sarif false Also emit SARIF for github/codeql-action/upload-sarif.
    upload_sarif false Upload the SARIF report to GitHub code scanning (implies sarif; needs security-events: write).
    comment false Post the human report as a sticky comment on the triggering pull request.
    version Image tag to pull (e.g. latest, 1.2.3). Empty follows the release the action is pinned to, else latest.
    image Override the full image reference. Takes precedence over version.
    github_token Token used to post PR comments. Defaults to the workflow github.token when empty.

    ignorelint

    $ ignorelint --help
    Description:
      Linter for *ignore files (.gitignore, .dockerignore, .eslintignore, etc.)
    
    Usage:
      ignorelint [options] [--] [<paths>...]
    
    Arguments:
      paths                                          Files to lint; none discovers them in the current directory, a lone - reads stdin
    
    Options:
          --fail-on=FAIL-ON                          Exit non-zero at this severity or worse (error|warn|info|none, default: error)
          --no-fail                                  Report every finding but always exit 0 (beats --fail-on)
          --plain                                    Human output as one undecorated path:line [CODE] severity: message record per line
          --file-path-in-report=FILE-PATH-IN-REPORT  Record this path instead of the linted one in machine-readable reports
          --format=FORMAT                            Output format (human|tty|gnu|json|checkstyle|junit|gitlab_codeclimate|codacy|sonarqube|sarif, default: human)
      -r, --recursive                                Search subdirectories for *ignore files (skips hidden dirs, node_modules, symlinks)
          --fix                                      Auto-fix deterministically fixable issues (IG-001,002,003,008,015,018,022,023,024)
          --diff                                     Preview auto-fix changes without writing (cannot combine with --fix)
          --stdin                                    Lint piped content instead of files (requires --file; a lone - path does the same)
          --file=FILE                                Filename for --stdin input (drives format detection)
          --disabled-rules=DISABLED-RULES            Skip rules entirely (comma-separated tags, e.g. IG-001,IG-020) (multiple values allowed)
          --error=ERROR                              Promote rules to error severity (comma-separated tags, e.g. IG-020) (multiple values allowed)
          --warning=WARNING                          Set rules to warning severity (comma-separated tags) (multiple values allowed)
          --info=INFO                                Demote rules to info severity (comma-separated tags; applied last) (multiple values allowed)
          --disable-ignore-pragma                    Parse suppression directives but apply none; IG-026 still lists them
          --config=CONFIG                            Projectfile read via pf-cli for the org.ignorelint policy subtree (default: ./projectfile.*)
      -h, --help                                     Display help for the given command. When no command is given display help for the ignorelint command
          --silent                                   Do not output any message
      -q, --quiet                                    Only errors are displayed. All other output is suppressed
      -V, --version                                  Display this application version
          --ansi|--no-ansi                           Force (or disable --no-ansi) ANSI output
      -n, --no-interaction                           Do not ask any interactive question
      -v|vv|vvv, --verbose                           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
    
    Help:
      When no path is given, discovers supported *ignore files in the current directory.
      Discovery and diagnostics go to stderr; stdout carries only the report.
    
      Environment variables:
        SHELL_VERBOSITY=1          Same as -v (-1 same as -q)
        IGNORELINT_FAIL_ON=LEVEL   Same as --fail-on (error|warn|info|none)
        IGNORELINT_NOFAIL=1        Same as --no-fail
        IGNORELINT_FORMAT=FORMAT   Same as --format
        IGNORELINT_FIX=1           Same as --fix
        IGNORELINT_RECURSIVE=1     Same as --recursive
        IGNORELINT_DISABLED_RULES=CODES Same as --disabled-rules
        IGNORELINT_OVERRIDE_ERROR=CODES Same as --error
        IGNORELINT_OVERRIDE_WARNING=CODES Same as --warning
        IGNORELINT_OVERRIDE_INFO=CODES Same as --info
        IGNORELINT_CONFIG=PATH     Same as --config
        IGNORELINT_DISABLE_IGNORE_PRAGMA=1 Same as --disable-ignore-pragma
        IGNORELINT_FILE_PATH_IN_REPORT=PATH Same as --file-path-in-report
        NO_COLOR=1                 Disable colored output (also TERM=dumb)
        FORCE_COLOR=1              Color even when piped (--ansi and --no-ansi beat both)
    

    Examples and every command’s help are in Usage.

    Image digests

    A tag can move; a digest cannot. Pull this exact build:

    docker pull docker.io/damianbuho/ignorelint@sha256:8939fc7fd7aff43ba12c2bfe2d0b25b26b4d61f5e3a02dc6db46e51ec7982e38
    docker pull kiota.ch/damian-buho/ignorelint@sha256:8939fc7fd7aff43ba12c2bfe2d0b25b26b4d61f5e3a02dc6db46e51ec7982e38
    
    Platform Digest Size
    linux/amd64 sha256:174d77259b4a6cfb51bbf715e7a4fa5261df41baf2adbb10a73aaba3dfa41384 90.5 MB

    Sizes are compressed layer bytes as stored in the registry.

    Verify

    Check that what you downloaded is what this project published.

    Container image

    The signature proves this project’s CI built and pushed the image; the attestation carries its software bill of materials.

    COSIGN_KEY=https://kiota.ch/damian-buho/metadata/raw/branch/main/keys/ci-cosign-key.pub
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true docker.io/damianbuho/ignorelint@sha256:8939fc7fd7aff43ba12c2bfe2d0b25b26b4d61f5e3a02dc6db46e51ec7982e38
    cosign verify --key "$COSIGN_KEY" --insecure-ignore-tlog=true kiota.ch/damian-buho/ignorelint@sha256:8939fc7fd7aff43ba12c2bfe2d0b25b26b4d61f5e3a02dc6db46e51ec7982e38
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx docker.io/damianbuho/ignorelint@sha256:8939fc7fd7aff43ba12c2bfe2d0b25b26b4d61f5e3a02dc6db46e51ec7982e38
    cosign verify-attestation --key "$COSIGN_KEY" --insecure-ignore-tlog=true --type cyclonedx kiota.ch/damian-buho/ignorelint@sha256:8939fc7fd7aff43ba12c2bfe2d0b25b26b4d61f5e3a02dc6db46e51ec7982e38
    

    Full changes: https://kiota.ch/damian-buho/ignorelint/compare/2.0.2...2.0.3

    Downloads
  • 2.0.2 5ec9e78b32

    2.0.2
    All checks were successful
    published / deps-installed (push) Successful in 0s
    published / fetched (push) Successful in 0s
    published / projectfile-is-valid (push) Successful in 8s
    published / signing-is-ready (push) Successful in 9s
    published / source-is-compliant (push) Successful in 13s
    published / source-is-secure (push) Successful in 14s
    published / binaries-are-built (amd64, linux) (push) Successful in 1m9s
    published / documentation-passes-lint (push) Successful in 1m9s
    published / source-is-tested (push) Successful in 0s
    published / projectfile-is-ok (push) Successful in 11s
    published / binaries-are-ok (push) Successful in 0s
    published / documentation-is-ok (push) Successful in 0s
    published / source-passes-lint (push) Successful in 1m59s
    published / source-is-ok (push) Successful in 0s
    published / inputs-are-ok (push) Successful in 0s
    published / image-is-built (amd64) (push) Successful in 7m50s
    published / secrets-ready (push) Successful in 0s
    published / image-has-sbom (amd64) (push) Successful in 11s
    published / image-is-secure (amd64) (push) Successful in 29s
    published / images-are-ok (push) Successful in 0s
    published / container-is-ok (push) Successful in 0s
    published / container-ready-to-test (push) Successful in 0s
    published / container-is-diagnosed (push) Successful in 0s
    published / container-is-verified (amd64) (push) Successful in 41s
    published / image-is-ready (push) Successful in 0s
    published / artifacts-are-ok (push) Successful in 0s
    published / ready-to-publish (push) Successful in 0s
    published / publish-image (push) Successful in 0s
    published / image-is-signed (push) Successful in 0s
    published / image-is-attested (amd64, kiota) (push) Successful in 16s
    published / image-is-attested (amd64, dockerhub) (push) Successful in 44s
    published / binaries-are-released (amd64, linux) (push) Successful in 4s
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-06 04:14:00 +00:00 | 134 commits to dev since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB
    Downloads
  • 2.0.1 b44af55a2a

    2.0.1
    All checks were successful
    published / fetched (push) Successful in 0s
    published / deps-installed (push) Successful in 0s
    published / projectfile-is-valid (push) Successful in 22s
    published / signing-is-ready (push) Successful in 21s
    published / source-is-tested (push) Successful in 0s
    published / source-is-compliant (push) Successful in 51s
    published / source-is-secure (push) Successful in 34s
    published / projectfile-is-ok (push) Successful in 32s
    published / binaries-are-built (amd64, linux) (push) Successful in 1m10s
    published / binaries-are-ok (push) Successful in 0s
    published / documentation-passes-lint (push) Successful in 1m22s
    published / documentation-is-ok (push) Successful in 0s
    published / source-passes-lint (push) Successful in 1m40s
    published / source-is-ok (push) Successful in 0s
    published / inputs-are-ok (push) Successful in 0s
    published / image-is-built (amd64) (push) Successful in 1m42s
    published / secrets-ready (push) Successful in 0s
    published / images-are-ok (push) Successful in 0s
    published / container-is-ok (push) Successful in 0s
    published / container-ready-to-test (push) Successful in 0s
    published / container-is-diagnosed (push) Successful in 0s
    published / image-has-sbom (amd64) (push) Successful in 12s
    published / image-is-secure (amd64) (push) Successful in 14s
    published / container-is-verified (amd64) (push) Successful in 30s
    published / image-is-ready (push) Successful in 0s
    published / artifacts-are-ok (push) Successful in 0s
    published / ready-to-publish (push) Successful in 0s
    published / publish-image (push) Successful in 0s
    published / image-is-signed (push) Successful in 0s
    published / image-is-attested (amd64, kiota) (push) Successful in 19s
    published / image-is-attested (amd64, dockerhub) (push) Successful in 41s
    published / binaries-are-released (amd64, linux) (push) Successful in 3s
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-03 18:43:37 +00:00 | 139 commits to dev since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB
    Downloads
  • 2.0.0 4f9df149e7

    2.0.0
    All checks were successful
    published / deps-installed (push) Successful in 0s
    published / fetched (push) Successful in 0s
    published / projectfile-is-valid (push) Successful in 3s
    published / signing-is-ready (push) Successful in 4s
    published / source-is-compliant (push) Successful in 6s
    published / source-is-tested (push) Successful in 0s
    published / source-is-secure (push) Successful in 5s
    published / projectfile-is-ok (push) Successful in 4s
    published / binaries-are-built (amd64, linux) (push) Successful in 43s
    published / documentation-passes-lint (push) Successful in 53s
    published / binaries-are-ok (push) Successful in 0s
    published / documentation-is-ok (push) Successful in 0s
    published / source-passes-lint (push) Successful in 1m19s
    published / source-is-ok (push) Successful in 0s
    published / inputs-are-ok (push) Successful in 0s
    published / image-is-built (amd64) (push) Successful in 3m8s
    published / secrets-ready (push) Successful in 0s
    published / image-has-sbom (amd64) (push) Successful in 23s
    published / image-is-secure (amd64) (push) Successful in 15s
    published / images-are-ok (push) Successful in 0s
    published / container-is-ok (push) Successful in 0s
    published / container-ready-to-test (push) Successful in 0s
    published / container-is-diagnosed (push) Successful in 0s
    published / container-is-verified (amd64) (push) Successful in 1m41s
    published / image-is-ready (push) Successful in 0s
    published / artifacts-are-ok (push) Successful in 0s
    published / ready-to-publish (push) Successful in 0s
    published / publish-image (push) Successful in 0s
    published / image-is-signed (push) Successful in 0s
    published / image-is-attested (amd64, kiota) (push) Successful in 33s
    published / image-is-attested (amd64, dockerhub) (push) Successful in 54s
    published / binaries-are-released (amd64, linux) (push) Successful in 2s
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-03 04:53:30 +00:00 | 143 commits to dev since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB
    Downloads
  • 1.7.1 f001cd22c1

    1.7.1
    All checks were successful
    published / fetched (push) Successful in 0s
    published / signing-is-ready (push) Successful in 4s
    published / projectfile-is-valid (push) Successful in 5s
    published / source-is-compliant (push) Successful in 5s
    published / source-is-secure (push) Successful in 7s
    published / source-is-tested (push) Successful in 9s
    published / projectfile-is-ok (push) Successful in 3s
    published / binaries-are-built (amd64, linux) (push) Successful in 20s
    published / binaries-are-ok (push) Successful in 0s
    published / source-passes-lint (push) Successful in 35s
    published / source-is-ok (push) Successful in 0s
    published / documentation-passes-lint (push) Successful in 48s
    published / documentation-is-ok (push) Successful in 0s
    published / inputs-are-ok (push) Successful in 0s
    published / image-is-built (amd64) (push) Successful in 1m5s
    published / secrets-ready (push) Successful in 0s
    published / images-are-ok (push) Successful in 0s
    published / container-is-ok (push) Successful in 0s
    published / container-ready-to-test (push) Successful in 0s
    published / image-has-sbom (amd64) (push) Successful in 8s
    published / image-is-secure (amd64) (push) Successful in 10s
    published / container-is-verified (amd64) (push) Successful in 23s
    published / image-is-ready (push) Successful in 0s
    published / artifacts-are-ok (push) Successful in 0s
    published / ready-to-publish (push) Successful in 0s
    published / publish-image (push) Successful in 0s
    published / image-is-signed (push) Successful in 0s
    published / image-is-attested (amd64, kiota) (push) Successful in 10s
    published / image-is-attested (amd64, dockerhub) (push) Successful in 39s
    published / binaries-are-released (amd64, linux) (push) Successful in 1s
    published / published (push) Successful in 0s
    Stable

    damian-buho released this 2026-10-01 22:12:18 +00:00 | 164 commits to dev since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB
    Downloads
  • 1.6.0 3aea26e751

    1.6.0
    All checks were successful
    published / fetched (push) Successful in 0s
    published / projectfile-is-valid (push) Successful in 3s
    published / signing-is-ready (push) Successful in 5s
    published / source-is-compliant (push) Successful in 6s
    published / source-is-secure (push) Successful in 7s
    published / source-is-tested (push) Successful in 10s
    published / documentation-passes-lint (push) Successful in 54s
    published / source-passes-lint (push) Successful in 41s
    published / binaries-are-built (arm64, linux) (push) Successful in 3m2s
    published / binaries-are-built (amd64, linux) (push) Successful in 3m4s
    published / projectfile-is-ok (push) Successful in 11s
    published / documentation-is-ok (push) Successful in 1s
    published / source-is-ok (push) Successful in 1s
    published / binaries-are-ok (push) Successful in 1s
    published / inputs-are-ok (push) Successful in 1s
    published / image-is-built (amd64) (push) Successful in 7m19s
    published / image-is-built (arm64) (push) Successful in 8m17s
    published / image-has-sbom (amd64) (push) Successful in 10s
    published / image-has-sbom (arm64) (push) Successful in 19s
    published / image-is-secure (amd64) (push) Successful in 21s
    published / secrets-ready (push) Successful in 0s
    published / image-is-secure (arm64) (push) Successful in 35s
    published / images-are-ok (push) Successful in 0s
    published / container-is-ok (push) Successful in 1s
    published / container-ready-to-test (push) Successful in 1s
    published / container-is-verified (amd64) (push) Successful in 30s
    published / image-is-ready (push) Successful in 1s
    published / artifacts-are-ok (push) Successful in 1s
    published / ready-to-publish (push) Successful in 1s
    published / publish-image (push) Successful in 1s
    published / image-is-signed (push) Successful in 1s
    published / image-is-attested (arm64, kiota) (push) Successful in 39s
    published / image-is-attested (amd64, kiota) (push) Successful in 42s
    published / image-is-attested (amd64, dockerhub) (push) Successful in 1m5s
    published / image-is-attested (arm64, dockerhub) (push) Successful in 1m4s
    published / binaries-are-released (amd64, linux) (push) Successful in 8s
    published / binaries-are-released (arm64, linux) (push) Successful in 3s
    published / published (push) Successful in 1s
    Stable

    damian-buho released this 2026-09-26 06:45:21 +00:00 | 205 commits to dev since this release

    Signed by damian-buho
    GPG key ID: 87B15EAD49FD22AB
    Downloads