diogoribeiro7/Smart TODO Action
A GitHub Action that scans your codebase for inline TODOs, FIXMEs, and BUG comments, and automatically creates GitHub Issues — with support for labels, metadata parsing, and semantic enrichment.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| repo-token | GitHub token to create issues. Falls back to `GITHUB_TOKEN` when not provided. | no | "" |
| report | Whether to generate a TODO markdown report | no | false |
| json-report | Whether to generate a JSON TODO report (TODO_REPORT.json) | no | false |
| dry-run | Preview mode; do not create or update GitHub issues | no | false |
| structured | Use structured tag extraction with @assignee, | no | false |
| warn-overdue | Emit warnings for TODOs with due dates in the past | no | false |
| stale-enabled | Enable auto-stale processing for managed TODO issues | no | false |
| stale-days | Days of inactivity before applying the stale label/comment | no | 30 |
| stale-label | Label to add to inactive managed TODO issues | no | stale |
| stale-comment | Comment posted when marking an issue as stale | no | This issue has been marked as stale due to inactivity. |
| stale-close-days | Days to keep an issue stale before closing it | no | 7 |
| stale-close-comment | Comment posted before closing a stale issue | no | Closing this issue as stale after repeated inactivity. |
| stale-managed-labels | Comma-separated labels identifying issues managed by this action | no | enhancement,bug,technical-debt |
| issue-title-template | Optional path to custom issue title template | no | — |
| issue-body-template | Optional path to custom issue body template | no | — |
| label-config | Optional path to JSON file with custom label colors and descriptions | no | — |
| ignore-globs | Optional comma-separated glob patterns to ignore while scanning files | no | "" |
| llm | Use LLM to generate issue titles and bodies | no | false |
| llm-provider | LLM provider to use (`openai` or `gemini`) | no | openai |
| openai-api-key | OpenAI API key used when `llm` is true | no | — |
| openai-model | OpenAI model to use (e.g., `gpt-3.5-turbo`, `gpt-4`) | no | gpt-3.5-turbo |
| gemini-api-key | Gemini API key used when `llm-provider` is `gemini` | no | — |
| gemini-model | Gemini model to use (e.g., `gemini-1.5-pro`) | no | gemini-1.5-pro |
| sync-to-jira | Enable Jira sync for created TODOs | no | false |
| jira-api-token | Jira API token or personal access token | no | — |
| jira-base-url | Base URL of your Jira instance (e.g. https://mycompany.atlassian.net) | no | — |
| jira-email | Email used in conjunction with the Jira API token | no | — |
| limit | Maximum number of issues to create | no | 5 |
| todo-keywords | Optional comma-separated extra TODO tags (e.g., NOTE,PERF) | no | "" |
| dedup-strategy | Dedup mode for matching TODOs/issues (title, normalized-text, hash) | no | title |
Outputs
no outputs