Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
BatmanAoD opened this issue Mar 7, 2025 · 1 comment

Comments

@BatmanAoD
Copy link

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.)

@mroy-seedbox
Copy link

mroy-seedbox commented Mar 8, 2025

Related:

Bonus: if test_func is used in combination with pattern, it should only operate on regex matches instead of on the entire file. This would make it the equivalent of the postprocess proposed above, but would make for a better integration than CLI exit codes (assuming that some kind of Python interface would exist in order to integrate the test_funcs with reLint).

Note: from Python, we could then pretty easily integrate with CLI tools if necessary.

Repository owner locked and limited conversation to collaborators Mar 15, 2025
@codingjoe codingjoe converted this issue into discussion #109 Mar 15, 2025

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants