TODO to Issue — VS Code Extension
Right-click a TODO, FIXME, HACK, or BUG comment in your code and instantly create a Jira or GitHub Issue — pre-populated with file context, line number, surrounding code snippet, and git blame info.
Features
- Right-Click → Create Issue: Context menu on any TODO/FIXME/HACK/BUG comment line
- Auto-Context Extraction: File path, line number, surrounding code (± 5 lines), git blame
- Jira Integration: Create issues in configured Jira project with labels
- GitHub Integration: Create GitHub issues with code permalink and labels
- CodeLens: Show linked issue status above TODO comments
- Inline Decoration: Highlight TODOs with issue link after creation
- Bulk Scan: Scan entire workspace for unlinked TODOs
- Duplicate Detection: Check for existing issues before creating duplicates
- Secure Credentials: API tokens stored in VS Code SecretStorage, never in settings
Setup
Open VS Code Settings (Cmd+,) and search for "TODO to Issue":
| Setting |
Description |
Default |
todoToIssue.provider |
Issue tracker: jira or github |
jira |
todoToIssue.jira.baseUrl |
Jira instance URL |
— |
todoToIssue.jira.projectKey |
Default Jira project key |
— |
todoToIssue.jira.issueType |
Default issue type |
Task |
todoToIssue.github.owner |
GitHub repo owner |
auto-detected |
todoToIssue.github.repo |
GitHub repo name |
auto-detected |
todoToIssue.patterns |
Comment patterns to detect |
["TODO","FIXME","HACK","BUG","XXX"] |
todoToIssue.contextLines |
Surrounding code lines in issue |
5 |
todoToIssue.includeGitBlame |
Include git blame info |
true |
todoToIssue.autoLabel |
Auto-add labels by type |
true |
todoToIssue.showCodeLens |
Show CodeLens above TODOs |
true |
todoToIssue.duplicateDetection |
Check duplicates before creating |
true |
Store Credentials Securely
Use the Command Palette (Cmd+Shift+P):
- Jira:
TODO to Issue: Configure Jira Credentials — enter email + API token
- GitHub:
TODO to Issue: Configure GitHub Token — enter PAT
Credentials are stored in VS Code's encrypted SecretStorage. Never in settings.json.
Usage
Create Issue from TODO
- Place cursor on a line with
TODO, FIXME, HACK, or BUG
- Right-click → TODO → Create Issue
- Issue is created with full context and linked inline
Link Existing Issue
- Place cursor on a TODO line
- Right-click → TODO → Link Existing Issue
- Enter issue key (e.g.,
PROJ-123 or #456)
Bulk Scan
- Command Palette → TODO → Scan Workspace
- View counts of linked vs unlinked TODOs
Auto-Labels
| TODO Type |
Label |
TODO |
enhancement |
FIXME |
bug |
HACK |
tech-debt |
BUG |
bug |
XXX |
needs-review |
Installation
From GitHub Releases
Download the latest .vsix from Releases and install:
code --install-extension todo-to-issue-*.vsix
From Source
git clone https://github.com/bhayanak/todo-to-issue-converter.git
cd todo-to-issue-converter
npm ci && npm run build
npx @vscode/vsce package --no-dependencies
code --install-extension todo-to-issue-*.vsix
Requirements
- VS Code 1.85+
- Node.js 18+
- Git (for blame info)
Contributing
PRs welcome! Run the test suite before submitting:
npm ci
npm test -- --coverage
npm run lint
License
MIT