{"id":14985868,"url":"https://github.com/yuto-trd/todo-comments-in-pr","last_synced_at":"2026-02-08T07:04:18.405Z","repository":{"id":255826563,"uuid":"853658119","full_name":"yuto-trd/todo-comments-in-pr","owner":"yuto-trd","description":"Find the TODO comment in the pull request diff.","archived":false,"fork":false,"pushed_at":"2024-12-02T23:53:52.000Z","size":548,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T22:12:06.175Z","etag":null,"topics":["actions","code-quality","github-actions","tasks","todo"],"latest_commit_sha":null,"homepage":"https://github.com/marketplace/actions/find-todos-in-pull-requests","language":"TypeScript","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/yuto-trd.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":"2024-09-07T06:49:51.000Z","updated_at":"2024-11-27T08:38:19.000Z","dependencies_parsed_at":"2024-09-07T10:34:57.963Z","dependency_job_id":"7913b4bb-4478-4680-a36e-45fdc77ea4e4","html_url":"https://github.com/yuto-trd/todo-comments-in-pr","commit_stats":{"total_commits":17,"total_committers":1,"mean_commits":17.0,"dds":0.0,"last_synced_commit":"4c04f3ae80080a9d05bcfad50b0df4b7b281035b"},"previous_names":["indigo-san/todo-comments-in-pr","yuto-trd/todo-comments-in-pr"],"tags_count":3,"template":false,"template_full_name":"actions/typescript-action","purl":"pkg:github/yuto-trd/todo-comments-in-pr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuto-trd%2Ftodo-comments-in-pr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuto-trd%2Ftodo-comments-in-pr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuto-trd%2Ftodo-comments-in-pr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuto-trd%2Ftodo-comments-in-pr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuto-trd","download_url":"https://codeload.github.com/yuto-trd/todo-comments-in-pr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuto-trd%2Ftodo-comments-in-pr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29224430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T06:05:31.539Z","status":"ssl_error","status_checked_at":"2026-02-08T05:58:33.853Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["actions","code-quality","github-actions","tasks","todo"],"created_at":"2024-09-24T14:11:48.352Z","updated_at":"2026-02-08T07:04:18.392Z","avatar_url":"https://github.com/yuto-trd.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Find TODOs in pull requests\n\n[![GitHub Super-Linter](https://github.com/yuto-trd/todo-comments-in-pr/actions/workflows/linter.yml/badge.svg)](https://github.com/super-linter/super-linter)\n![CI](https://github.com/yuto-trd/todo-comments-in-pr/actions/workflows/ci.yml/badge.svg)\n[![Check dist/](https://github.com/yuto-trd/todo-comments-in-pr/actions/workflows/check-dist.yml/badge.svg)](https://github.com/yuto-trd/todo-comments-in-pr/actions/workflows/check-dist.yml)\n[![CodeQL](https://github.com/yuto-trd/todo-comments-in-pr/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/yuto-trd/todo-comments-in-pr/actions/workflows/codeql-analysis.yml)\n[![Coverage](./badges/coverage.svg)](./badges/coverage.svg)\n\nFind the TODO comment in the pull request diff.\n\n## Example usage\n\n```yaml\nname: Find TODOs in pull requests\n\non:\n  pull_request:\n\njobs:\n  find-todos:\n    permissions:\n      pull-requests: write\n\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: yuto-trd/todo-comments-in-pr@vx.y.z\n        id: todos\n\n      - name: Generate a summary of the tasks\n        uses: actions/github-script@v7\n        id: summary\n        with:\n          result-encoding: string\n          script: |\n            const tasks = JSON.parse(String.raw`${{ steps.todos.outputs.tasks }}`);\n            let body = tasks.map(task =\u003e `https://github.com/${{ github.repository }}/blob/${{ github.sha }}/${task.fileName}#L${task.startLine}-L${task.endLine}`).join('\\n');\n\n            if (tasks.length \u003e 0) {\n              body = `The following TODO comments were found:\\n\\n${body}`;\n            } else {\n              body = 'No TODO comments were found.';\n            }\n            return body;\n\n      - name: Comment on the pull request\n        uses: marocchino/sticky-pull-request-comment@v2\n        with:\n          header: todo-cooments\n          recreate: true\n          message: |\n            ${{ steps.summary.outputs.result }}\n```\n\n## Inputs\n\n### `path`\n\n**Optional** The path to the file to search for TODOs. Need to specify a Json\narray.  \n(default: `[\"*.cs\",\"*.js\",\"*.jsx\",\"*.ts\",\"*.tsx\",\"*.css\",\"*.scss\",\"*.sass\"]`)\n\n### `commit`\n\n**Optional** The commit to compare the current commit to.  \n(default: `${{ github.event.pull_request.base.ref }}`)\n\n### `single_line_comment`\n\n**Optional** The regex pattern to match single-line comments.  \n(default: `\\/\\/.*`)\n\n### `multi_line_comment_start`\n\n**Optional** The regex pattern to match the start of a multi-line comment.  \n(default: `\\/\\*`)\n\n### `multi_line_comment_end`\n\n**Optional** The regex pattern to match the end of a multi-line comment.  \n(default: `\\*\\/`)\n\n### `regex`\n\n**Optional** The regex pattern to match the keywords.  \n(default: `TODO`)\n\n## Outputs\n\n### `tasks`\n\nThe list of tasks found in the diff.\n\n```json\n[\n  {\n    \"startLine\": 1,\n    \"endLine\": 1,\n    \"content\": \"// TODO: test\",\n    \"fileName\": \"path/to/file\"\n  }\n]\n```\n\n### `tasks_count`\n\nThe number of tasks found in the diff.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuto-trd%2Ftodo-comments-in-pr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuto-trd%2Ftodo-comments-in-pr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuto-trd%2Ftodo-comments-in-pr/lists"}