{"id":28050331,"url":"https://github.com/Evertras/code-todos","last_synced_at":"2025-05-12T00:03:29.132Z","repository":{"id":196300317,"uuid":"695403613","full_name":"Evertras/code-todos","owner":"Evertras","description":"Programmatically find and track TODO statements in codebases","archived":false,"fork":false,"pushed_at":"2023-10-02T03:28:05.000Z","size":65,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T00:25:51.320Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Evertras.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-23T04:34:25.000Z","updated_at":"2024-03-12T13:34:10.000Z","dependencies_parsed_at":"2025-02-12T06:36:25.083Z","dependency_job_id":"fc8af7bb-8c55-4766-a5a8-0bd9e259d959","html_url":"https://github.com/Evertras/code-todos","commit_stats":null,"previous_names":["evertras/code-todos"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Evertras%2Fcode-todos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Evertras%2Fcode-todos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Evertras%2Fcode-todos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Evertras%2Fcode-todos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Evertras","download_url":"https://codeload.github.com/Evertras/code-todos/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253650947,"owners_count":21942232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-12T00:02:26.532Z","updated_at":"2025-05-12T00:03:29.119Z","avatar_url":"https://github.com/Evertras.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# code-todos\n\n[![Coverage Status](https://coveralls.io/repos/github/Evertras/code-todos/badge.svg?branch=main)](https://coveralls.io/github/Evertras/code-todos?branch=main)\n\nProgrammatically find and track TODO statements in codebases.\n\n## What it does\n\nUses an AST to find all comments that contain `TODO:` and generate some useful\ndata about where they are and what they say.  This can then be used either\nin further scripting with JSON output, or as a simple Markdown document that\ncan be generated and updated in a repository.\n\n## Installation\n\nReleases are available as raw binaries on the\n[releases page](https://github.com/Evertras/code-todos/releases).\n\nYou can also install via Go:\n\n```bash\n# Install the binary to ~/some/dir... or omit GOBIN to install to default location\nGOBIN=~/some/dir go install github.com/evertras/code-todos/cmd/code-todos@v0.1.0\n```\n\n## Generated example\n\nSee [./todos.md](./todos.md) for the most up to date example that is generated\nfor this repository.  A snapshot is shown below for quick reference, but this\nmay be out of date.\n\n| Filename | Package | Line | Text |\n| -------- | ------- | ---- | ---- |\n| [internal/todos/find.go](./internal/todos/find.go#L27) | todos | 27 | TODO: add globbing |\n| [internal/todos/find.go](./internal/todos/find.go#L48) | todos | 48 | TODO: Filter better |\n| [internal/todos/find.go](./internal/todos/find.go#L56) | todos | 56 | TODO: Better error handling |\n| [internal/todos/testdata/go/main.go](./internal/todos/testdata/go/main.go#L4) | main | 4 | TODO: Write a really cool thing here. And do it on multiple lines |\n\n\n## Supported languages\n\nFor now, just Go.  May add others later if useful.\n\nA general \"catch-all\" regex mode may also be helpful in the future.\n\n## Usage\n\nBy default, `code-todos` will output a Markdown table of all TODOs it finds.\nYou can supply `-o json` to output JSON which can be used in further scripting.\n\n```bash\n# Check help at any time to see available commands and options\ncode-todos --help\n\n# Find TODOs in current directory recursively\ncode-todos find .\n\n# Find TODOs in pkg and cmd dirs only\ncode-todos find pkg cmd\n\n# Find TODOs in specific files and output in JSON for\n# further machine parsing elsewhere, scripting, etc.\ncode-todos find main.go pkg/thing/library.go -o json\n\n# Count TODOs, as an example of combining with jq\ncode-todos find . -o json | jq length\n```\n\n### Where to put todos\n\nThe simplest idea is to keep a file of current TODOs, particularly so that in\na PR you can track added/completed TODOs in the codebase as a health metric.\nThis can be in [a todos file checked in with the repository](./todos.md) which\n[is built in a Makefile or similar](./Makefile).\n\nIf PRs become too conflicting, you can also [update the wiki with a GitHub\nAction](./.github/workflows/wiki-update.yaml) and [see the result\nhere](https://github.com/Evertras/code-todos/wiki/Todos).  This will detach\nthe todo list from the main repository, which makes it less obvious in PRs when\nTODOs are updated, but it will make development across a team much easier.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEvertras%2Fcode-todos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEvertras%2Fcode-todos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEvertras%2Fcode-todos/lists"}