{"id":15728573,"url":"https://github.com/ilikeplayinggames/line-diff-action","last_synced_at":"2026-05-22T00:10:16.767Z","repository":{"id":87333795,"uuid":"605367343","full_name":"ILikePlayingGames/line-diff-action","owner":"ILikePlayingGames","description":"Gets the git diff between two commits, formats it using Delta, and writes it to `./diff.txt`.","archived":false,"fork":false,"pushed_at":"2024-06-29T01:19:37.000Z","size":1476,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-14T06:51:32.172Z","etag":null,"topics":["diff","git"],"latest_commit_sha":null,"homepage":"","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/ILikePlayingGames.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-23T02:11:53.000Z","updated_at":"2024-06-29T01:19:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"7fdf11ad-5ef7-424e-96f9-84cadc2da244","html_url":"https://github.com/ILikePlayingGames/line-diff-action","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":"actions/typescript-action","purl":"pkg:github/ILikePlayingGames/line-diff-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ILikePlayingGames%2Fline-diff-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ILikePlayingGames%2Fline-diff-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ILikePlayingGames%2Fline-diff-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ILikePlayingGames%2Fline-diff-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ILikePlayingGames","download_url":"https://codeload.github.com/ILikePlayingGames/line-diff-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ILikePlayingGames%2Fline-diff-action/sbom","scorecard":{"id":64764,"data":{"date":"2025-08-11","repo":{"name":"github.com/ILikePlayingGames/line-diff-action","commit":"23ba2a0366eb63aa20f3f8412dee1087c63f6667"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/17 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:29","Warn: no topLevel permission defined: .github/workflows/check-dist.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check-dist.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/check-dist.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check-dist.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/check-dist.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check-dist.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/check-dist.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/test.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/ILikePlayingGames/line-diff-action/test.yml/main?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/test.yml:24","Info:   0 out of  11 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   2 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-c76h-2ccp-4975","Warn: Project is vulnerable to: GHSA-cxrh-j4jr-qwg3"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T02:22:31.528Z","repository_id":87333795,"created_at":"2025-08-15T02:22:31.528Z","updated_at":"2025-08-15T02:22:31.528Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270671779,"owners_count":24625843,"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","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["diff","git"],"created_at":"2024-10-03T23:03:50.654Z","updated_at":"2026-05-22T00:10:16.761Z","avatar_url":"https://github.com/ILikePlayingGames.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ILikePlayingGames/line-diff-action\"\u003e\u003cimg alt=\"line-diff-action status\" src=\"https://github.com/ILikePlayingGames/line-diff-action/workflows/build-test/badge.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Line Diff V3\n\n---\n\nThis action gets the line by line differences between two commits and formats the result using\n[Delta](https://github.com/dandavison/delta) (V3 of this action uses Delta v0.19). The result is then written to a file on the runner (`./diff.txt` by default).\nIt cannot be passed as a step output or an environment variable due to the ANSI escape codes and other special\ncharacters that may be present in the diff.\n\n# Usage\n\n---\n\nThe [Checkout action](https://github.com/actions/checkout) checks out just the commit at HEAD by default.\nMake sure `fetch-depth` is set to the number of commits between the commit hash you want to diff and HEAD\nso both commits are fetched. Please see the checkout action repository linked above for more details about the use\nof the `fetch-depth` parameter.\n\n## Options\n| Parameter            | Required | Description                                                                                                                                                            |\n|----------------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `commit-hash`        | true     | The commit hash to compare to HEAD, or `second-commit-hash` if provided                                                                                                |\n| `second-commit-hash` | false    | The commit hash to compare the first commit hash to, defaults to HEAD                                                                                                  |\n| `diff-algorithm`     | false    | The git diff algorithm to use (see [man page](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-algorithmpatienceminimalhistogrammyers) for details  |\n| `delta-theme`        | false    | The name of the theme that Delta will use to format the diff (see [the delta theme list](https://github.com/dandavison/delta/blob/master/themes.gitconfig) for options |\n| `output-path`        | false    | The path to the file the diff will be written to (defaults to `./diff.txt`)                                                                                            |\n\n## Diff Previous Commit and HEAD\n\n```yaml\n- uses: actions/checkout@v6\n  with:\n    # Fetch HEAD and the commit before it\n    fetch-depth: 2\n  # Get the formatted line-by-line diff\n- id: get_diff\n  uses: ILikePlayingGames/line-diff@v3\n  with:\n    commit-hash: '@~'\n  # Read ./diff.txt in your next step to use the diff.\n- run: cat ./diff.txt\n```\n\n## Diff Specific Commit and HEAD\n\n```yaml\n  - uses: actions/checkout@v6\n    with:\n      # Make sure fetch depth is set to include\n      # the commit hash below.\n      fetch-depth: 0\n  # Get the formatted line-by-line diff\n  - id: get_diff\n    uses: ILikePlayingGames/line-diff@v3\n    with:\n      commit-hash: '7a118f3040c7cbe7373bc03783a3e65d5cd42cd4'\n  # Read ./diff.txt in your next step to use the diff.\n  - run: cat ./diff.txt\n```\n\n## Diff Two Arbitrary Commits\n\n```yaml\n- uses: actions/checkout@v6\n  with:\n    # Make sure fetch depth is set to include\n    # the commit hashes below.\n    fetch-depth: 0\n# Get the formatted line-by-line diff\n- id: get_diff\n  uses: ILikePlayingGames/line-diff@v3\n  with:\n    commit-hash: '7a118f3040c7cbe7373bc03783a3e65d5cd42cd4'\n    second-commit-hash: 'a757538ac02bdb031ad72c00f7966bffa1f4349b'\n  # Read ./diff.txt in your next step to use the diff.\n- run: cat ./diff.txt\n```\n\n## Diff With Different Algorithm\n\n```yaml\n- uses: actions/checkout@v6\n  with:\n    # Make sure fetch depth is set to include\n    # the commit hash below.\n    fetch-depth: 0\n# Get the formatted line-by-line diff\n- id: get_diff\n  uses: ILikePlayingGames/line-diff@v3\n  with:\n    commit-hash: '7a118f3040c7cbe7373bc03783a3e65d5cd42cd4'\n    # Please see git-diff documentation for options\n    diff-algorithm: 'minimal'\n  # Read ./diff.txt in your next step to use the diff.\n- run: cat ./diff.txt\n```\n\n## Use a custom theme\n```yaml\n- uses: actions/checkout@v6\n  with:\n    # Fetch HEAD and the commit before it\n    fetch-depth: 2\n  # Get the formatted line-by-line diff\n- id: get_diff\n  uses: ILikePlayingGames/line-diff@v3\n  with:\n    commit-hash: '@~'\n    # Use the discord custom theme\n    delta-theme: discord\n  # Read ./diff.txt in your next step to use the diff.\n- run: cat ./diff.txt\n```\n\n## Output to a custom path\n```yaml\n- uses: actions/checkout@v6\n  with:\n    # Fetch HEAD and the commit before it\n    fetch-depth: 2\n  # Get the formatted line-by-line diff\n- id: get_diff\n  uses: ILikePlayingGames/line-diff@v3\n  with:\n    commit-hash: '@~'\n    output-path: './output.diff'\n  # Read ./output.diff in your next step to use the diff.\n- run: cat ./output.diff\n```\n\n# Credits\n\n---\n\nThis action uses [Delta](https://github.com/dandavison/delta) to generate the formatted diffs. Thank you, @hrueger,\nfor sharing the [piped command workaround](https://github.com/actions/toolkit/issues/359#issuecomment-603065463)!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filikeplayinggames%2Fline-diff-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filikeplayinggames%2Fline-diff-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filikeplayinggames%2Fline-diff-action/lists"}