• 
      

    Update shellcheck for new tool support and better parsing.

    Review Request #11576 — Created April 5, 2021 and submitted

    Information

    ReviewBot
    release-3.0.x

    Reviewers

    This updates ShellCheckTool to subclass the newer BaseTool, and to
    use the newer features it offers (dependencies, improved file pattern
    support, central command building, new loggers, and new comment
    options).

    The list of file types and shebangs supported have been extended, based
    on shellcheck's advertised capabilities.

    The handling of shellcheck results has been improved. We now request
    JSON output, and use that to convey column, error code, and severity
    information.

    The payload also provides suggested fixes, in the form of "replacement"
    ranges. These are used to modify the referenced line(s) of code and
    patch them up to provide a possible replacement line of code. The new
    tool support will provide the resulting replacements in the comment, if
    we're able to successfully apply them without any issues. This is
    future-proofed to back out of the attempt if we see anything we don't
    expect from shellcheck.

    If anything goes wrong with parsing files or handling settings, the
    resulting error is left as a comment on the file.

    Unit tests passed on Python 2.7 and 3.x.

    Summary ID
    Update shellcheck for new tool support and better parsing.
    This updates `ShellCheckTool` to subclass the newer `BaseTool`, and to use the newer features it offers (dependencies, improved file pattern support, central command building, new loggers, and new comment options). The list of file types and shebangs supported have been extended, based on shellcheck's advertised capabilities. The handling of shellcheck results has been improved. We now request JSON output, and use that to convey column, error code, and severity information. The payload also provides suggested fixes, in the form of "replacement" ranges. These are used to modify the referenced line(s) of code and patch them up to provide a possible replacement line of code. The new tool support will provide the resulting replacements in the comment, if we're able to successfully apply them without any issues. This is future-proofed to back out of the attempt if we see anything we don't expect from shellcheck. If anything goes wrong with parsing files or handling settings, the resulting error is left as a comment on the file.
    2264c4462c76230cebfb5dd94dd38a712fd8aa18
    Description From Last Updated

    Copy-pasteo: pyflakes -> shellcheck. Mind checking your other changes to make sure I didn't miss this in the things I've …

    daviddavid
    david
    1. 
        
    2. bot/reviewbot/tools/shellcheck.py (Diff revision 1)
       
       
      Show all issues

      Copy-pasteo: pyflakes -> shellcheck. Mind checking your other changes to make sure I didn't miss this in the things I've already reviewed?

    3. 
        
    chipx86
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-3.0.x (20385c9)