Skip to content

Enhancement: programmatic hook, or structured output, for downstream CLI tools #108

Closed
@BatmanAoD

Description

@BatmanAoD

I'd like to be able to generate "possible" lints with relint, and then use other CLI tools to determine whether each lint is a false positive or not.

Specifically, my use-case is to find instances of \bTODO #\d+ and check whether the #\d+ refers to an open ticket. This requires checking the status of tickets in a ticket-tracker, which is well outside the purview of relint. But if relint had a way to feed a particular lint to a downstream program, especially using regex captures, this would be pretty simple:

- name: TODOS with tickets
  pattern: '\bTODO #(\d+)'
  hint: make sure that the ticket is open
  error: false
  filePattern: '^(?!docs/)'
  postprocess: "glab issue show '${1}' | grep '^state:' | grep -q open"

Here, a status code of 1 means that the lint IS valid, and 0 means it's a false positive. (I'm not sure whether there's a better way to do this than using status codes, and it's not obvious whether 0 should mean "valid" or "false positive", but I think those are primarily documentation issues.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions