Skip to main content

    January 2022

    Version 0.80.0

    Additions

    Autocomplete

    Autocomplete is now available for CLI options.

    Dockerfile

    Support for Semgrep's metavariables where argument expansion is already supported. (#4556)

    Changes

    Ruby

    You can now use an atom to match an identifier of the same name. (#4550)

    Fixes

    Missing target file does not lead to Semgrep crash

    Before this update, handling a missing target file could crash Semgrep. This issue has been fixed. (#4462)

    Additional information

    To see the complete change notes, visit the Semgrep changelog.

    Version 0.79.0

    Additions

    Ignoring code

    Support for placing nosemgrep comments on the line before a match, causing such match to be ignored (#3521).

    Changes

    Verbose output

    Parse errors (reported with --verbose) appear once per file, not once per rule/file.

    Version 0.78.0

    Additions

    Symbolic propagation

    Semgrep can now symbolically propagate simple definitions. For example, given an assignment x = foo.bar() followed by a call x.baz(), Semgrep will keep track of x's definition, and it will successfully match x.baz() with a pattern like foo.bar().baz(). This feature should help writing simple yet powerful rules, by letting the dataflow engine take care of any intermediate assignments. Symbolic propagation is still experimental and is disabled by default. It must be enabled on a per-rule basis using options: and setting symbolic_propagation: true. (#2783, #2859, #3207)

    Verbose output

    --verbose now outputs a timing and file breakdown summary at the end.

    Metavariables

    metavariable-comparison now handles metavariables that bind to arbitrary constant expressions (instead of just code variables).

    Dockerfile

    Pre-alpha support for Dockerfile as a new target language.

    Additional information

    To see the complete change notes, visit the Semgrep changelog.


    Not finding what you need in this doc? Ask questions in our Community Slack group, or see Support for other ways to get help.