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
Configure Provider
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, orBUG - 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-123or#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