TODO-Checker
Plugin to verify TODO and FIXME comments reference open issues.
Fails the pipeline if any TODO/FIXME lacks a valid open issue reference. Currently supports Forgejo and Gitea.
v1.x.x (shell-based, unmaintained) is deprecated. v2.x.x is a complete Rust rewrite.
Settings
| Settings Name | Default | Description |
|---|---|---|
prefix_regex |
(TODO|FIXME) |
prefix that a comment should start with to check for an associated issue number |
main_regex |
?\(#?(?P<ISSUE_NUMBER>\d+)\) |
main regex to check how the issue number should be defined. IMPORTANT: custom regex must include a capturing group named "ISSUE_NUMBER" that extracts only the issue regex |
closing_keyword_regex |
(?i)(?:closes|closing)\s+#?(?P<ISSUE_NUMBER>\d+) |
(since v2.3.0) for forges using keywords other than "Closes" or "Closing"; custom regex accepted |
page_size |
default |
page size which is provided by the forge (default and max are available with forgejo) |
working_directory |
. |
the working directory where the checker should run. (only ignore-files in this specification directory are recognized) |
repository_token |
`` | token if the repository to be checked is private |
single_issue_check |
false |
make a request for each issue found (may increase or decrease API requests depending on TODO/FIXME count vs. issue list pagination) |
use_table |
false |
(since v2.2.0) prints tables instead of the new format. Tables were the default output before v2.2.0, but may display incorrectly on too small screens |
debug |
false |
enable debug output |
Building custom regex
This plugin is built in Rust, so it uses the regex crate under the hood. For custom regexes, refer to rust regex syntax
Ignoring files
Supported ignore files: .ignore and .gitignore (for excluding files with invalid TODOs/FIXMEs).
Examples
- name: 'Check TODOs/FFIXMEs'
image codeberg.org/epsilon_02/todo-checker
settings:
debug: true
single_issue_check: true
working_directory: ./only_check_this_folder
With token:
- name: 'Check TODOs/FIXMEs'
image: codeberg.org/epsilon_02/todo-checker
settings:
repository_token
from_secret: todo_checker_token