{"id":16138200,"url":"https://github.com/ul/did-i-forget","last_synced_at":"2025-06-13T03:04:29.756Z","repository":{"id":46945635,"uuid":"255311091","full_name":"ul/did-i-forget","owner":"ul","description":"Did I forget ...?","archived":false,"fork":false,"pushed_at":"2021-09-20T22:39:21.000Z","size":45,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-07T22:51:19.978Z","etag":null,"topics":["code-analysis","git-history"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-13T11:49:12.000Z","updated_at":"2022-11-09T01:35:08.000Z","dependencies_parsed_at":"2022-09-10T17:01:22.576Z","dependency_job_id":null,"html_url":"https://github.com/ul/did-i-forget","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ul/did-i-forget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ul%2Fdid-i-forget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ul%2Fdid-i-forget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ul%2Fdid-i-forget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ul%2Fdid-i-forget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ul","download_url":"https://codeload.github.com/ul/did-i-forget/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ul%2Fdid-i-forget/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259571641,"owners_count":22878183,"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":["code-analysis","git-history"],"created_at":"2024-10-09T23:32:54.811Z","updated_at":"2025-06-13T03:04:28.989Z","avatar_url":"https://github.com/ul.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Did I forget ...?\n\nA small utility to find files highly coupled to the changes in your branch based on git history.\nHelps to double-check if you forgot to update something related to the files you worked on.\n\n## Installation\n\n```\n$ yarn global add did-i-forget\n```\n\n## Usage\n\n```\n$ did-i-forget -c\n```\n\n## Example output\n\n```\n❯ did-i-forget -c -n 3\nGetting changed paths... Done.\n2 files changed against the origin/master\nIs cache valid? Yes!\nProcessed 401 commits.\nGenerating report... Enjoy!\n\n  ┌────────────────────┬──────────────────────────────────────────┬────────────────┬────────────┐\n  │    Changed file    │               Coupled file               │ Shared commits │ Confidence │\n  ├────────────────────┼──────────────────────────────────────────┼────────────────┼────────────┤\n  │ src/diagnostics.rs │ src/language_features/cquery.rs          │             13 │       0.72 │\n  ├────────────────────┼──────────────────────────────────────────┼────────────────┼────────────┤\n  │ src/diagnostics.rs │ src/language_features/document_symbol.rs │              7 │        0.7 │\n  ├────────────────────┼──────────────────────────────────────────┼────────────────┼────────────┤\n  │ src/diagnostics.rs │ src/language_features/signature_help.rs  │              6 │       0.67 │\n  └────────────────────┴──────────────────────────────────────────┴────────────────┴────────────┘\n```\nIn this example `did-i-forget` tells me that I worked on `src/diagnostics.rs` and I might want to look into `src/language_features/cquery.rs` as the former was changed in 72% of commits which addressed `src/language_features/cquery.rs` in the past.\n\n## Options\n\n### Threshold\n\n`-t 0.5`, `--threshold 0.5`\n\nSet a minimum confidence for a coupled file to be reported.\n\n### Top N\n\n`-n 1`, `--ntop 1`\n\nHow many top coupled files to show for each changed file.\n\n### Cache\n\n#### Enable git log caching\n\n`-c`, `--cache`\n\nCache is stamped by a master revision head SHA reference and is invalidated when it changes.\nYou really want to use it for repeated runs in large repositories as difference can reach orders of magnitude.\n\n#### Custom cache path\n\n`--cache-file .did-i-forget-cache`\n\n### Output format\n\n`-f table`, `--format table`\n\nPrint result as a nicely layed out `table` or just a raw `csv`.\n\n### Master revision\n\n`-m origin/master`, `--master origin/master`\n\nSpecify a revision (usually a branch) to diff current state against to find out changed files.\n\n### Quiet mode\n\n`-q`, `--quiet`\n\nDon't output progress information, only print result.\nNote that logging goes into stderr and result into stdout so you still can pipe result when logging enabled.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ful%2Fdid-i-forget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ful%2Fdid-i-forget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ful%2Fdid-i-forget/lists"}