{"id":37055020,"url":"https://github.com/corgibytes/freshli-lib","last_synced_at":"2026-01-14T06:12:59.974Z","repository":{"id":37941079,"uuid":"233626880","full_name":"corgibytes/freshli-lib","owner":"corgibytes","description":"A tool for collecting historical metrics about a project's dependencies","archived":false,"fork":false,"pushed_at":"2023-05-31T21:33:23.000Z","size":5677,"stargazers_count":17,"open_issues_count":46,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-11-22T09:23:31.550Z","etag":null,"topics":["dependencies","dependency-metrics","metrics","static-code-analysis"],"latest_commit_sha":null,"homepage":"","language":"C#","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/corgibytes.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-13T15:24:15.000Z","updated_at":"2023-12-08T06:49:26.000Z","dependencies_parsed_at":"2023-02-09T08:47:04.881Z","dependency_job_id":null,"html_url":"https://github.com/corgibytes/freshli-lib","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/corgibytes/freshli-lib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corgibytes%2Ffreshli-lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corgibytes%2Ffreshli-lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corgibytes%2Ffreshli-lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corgibytes%2Ffreshli-lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/corgibytes","download_url":"https://codeload.github.com/corgibytes/freshli-lib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corgibytes%2Ffreshli-lib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28412190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["dependencies","dependency-metrics","metrics","static-code-analysis"],"created_at":"2026-01-14T06:12:58.647Z","updated_at":"2026-01-14T06:12:59.960Z","avatar_url":"https://github.com/corgibytes.png","language":"C#","readme":"[![.NET Core](https://github.com/corgibytes/freshli-lib/workflows/.NET%20Core/badge.svg)](https://github.com/corgibytes/freshli/actions?query=workflow%3A%22.NET+Core%22)\n[![Docker Image CI](https://github.com/corgibytes/freshli-lib/workflows/Docker%20Image%20CI/badge.svg)](https://github.com/corgibytes/freshli/actions?query=workflow%3A%22Docker+Image+CI%22)\n[![EditorConfig Lint](https://github.com/corgibytes/freshli-lib/workflows/EditorConfig%20Lint/badge.svg)](https://github.com/corgibytes/freshli/actions?query=workflow%3A%22EditorConfig+Lint%22)\n[![Maintainability](https://api.codeclimate.com/v1/badges/4d7b974eedea679e6b03/maintainability)](https://codeclimate.com/github/corgibytes/freshli-lib/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/4d7b974eedea679e6b03/test_coverage)](https://codeclimate.com/github/corgibytes/freshli-lib/test_coverage)\n\n# Freshli-Lib\nA library for computing historical metrics about a project's dependencies.\n\nIf you are looking for a completed application please see the [Freshli CLI](https://github.com/corgibytes/freshli-cli) or [Freshli Website](https://freshli.io/).\n\n## Getting Started\nFreshli-Lib is a available as a NuGet [package](https://www.nuget.org/packages/Corgibytes.Freshli.Lib/).  You can install it using your favoriate IDE GUI or by running the following command:\n\n```\ndotnet add package Corgibytes.Freshli.Lib\n```\n\nAn example of using Freshli-Lib:\n\n```csharp\nusing Corgibytes.Freshli.Lib;\n\n// The runner takes the path to your repository.\nvar runner = new Runner();\nvar results = runner.Run(repositoryUrl);\n\n// You can view both the manifest file name and a collection of metric results\nConsole.WriteLine(results.Filename);\nConsole.WriteLine(results.MetricsResults);\n\n// You can also output the entire ScanResult\nConsole.WriteLine(results[0].ToString());\n```\n\n### Alpha Packages\n\nIf you like living on the edge you can find alpha versions of Freshli Lib [here](https://github.com/corgibytes/freshli-lib/packages/667787/versions).  You will need to [set up a GitHub personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) and then create a `nuget.config` file in your project root with the following contents:\n\n```\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cconfiguration\u003e\n    \u003cpackageSources\u003e\n        \u003cadd key=\"GithubPackages\" value=\"https://nuget.pkg.github.com/corgibytes/index.json\" /\u003e\n    \u003c/packageSources\u003e\n    \u003cpackageSourceCredentials\u003e\n        \u003cGithubPackages\u003e\n            \u003cadd key=\"Username\" value=\"GITHUB_USERNAME\" /\u003e\n            \u003cadd key=\"ClearTextPassword\" value=\"PERSONAL_ACCESS_TOKEN\" /\u003e\n        \u003c/GithubPackages\u003e\n    \u003c/packageSourceCredentials\u003e\n\u003c/configuration\u003e\n```\n\n## Supported Dependency Managers\n\nThe dependency managers that Freshli supports are listed below along with the manifest files it can parse.  The manifest file is the file that lists what dependencies are required by the project and has changed over time for some dependency managers, like NuGet.\n\n| Dependency Manager | Language/Framework | Manifest Files Format |\n|--------------------|--------------------|-----------------------|\n| [Bundler](https://bundler.io/) | [Ruby](https://www.ruby-lang.org), [Ruby on Rails](https://rubyonrails.org/) | Gemfile.lock |\n| [Carton](https://metacpan.org/pod/Carton) | [Perl](https://www.perl.org/) | cpanfile |\n| [Composer](https://getcomposer.org/) | [PHP](https://www.php.net/) | composer.json, composer.lock |\n| [Pip](https://pypi.org/project/pip/) | [Python](https://www.python.org/) | requirements.txt |\n| [NuGet](https://www.nuget.org/) | [C#](https://docs.microsoft.com/en-us/dotnet/csharp/) | *.csproj |\n\nPlease let us know what other dependency managers and/or manifest files you would like use to support via the contact information in the [Contributing](#contributing) section.\n\n## Supported Source Control Tools\n\nFreshli reads source code repository history to access previous version of each dependency manifest.  Currently Freshli only supports [Git](https://git-scm.com/) but if you would like us to add more let us know via the contact information in the [Contributing](#contributing) section.\n\n## Contributing to Freshli-Lib\n\nIf you have any questions, notice a bug, or have a suggestion/enhancment please let us know by opening a [issue](https://github.com/corgibytes/freshli-lib/issues) or [pull request](https://github.com/corgibytes/freshli-lib/pulls).  More information can be found at the [Contributing Guide](CONTRIBUTING.md)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorgibytes%2Ffreshli-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcorgibytes%2Ffreshli-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorgibytes%2Ffreshli-lib/lists"}