{"id":13458329,"url":"https://github.com/dotnet/extensions","last_synced_at":"2026-05-22T14:01:58.173Z","repository":{"id":27453632,"uuid":"30932325","full_name":"dotnet/extensions","owner":"dotnet","description":"This repository contains a suite of libraries that provide facilities commonly needed when creating production-ready applications.","archived":false,"fork":false,"pushed_at":"2026-04-29T19:47:28.000Z","size":109396,"stargazers_count":3147,"open_issues_count":235,"forks_count":863,"subscribers_count":228,"default_branch":"main","last_synced_at":"2026-04-30T04:03:27.674Z","etag":null,"topics":["dotnet"],"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/dotnet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-02-17T19:02:08.000Z","updated_at":"2026-04-29T19:47:32.000Z","dependencies_parsed_at":"2023-09-26T14:57:33.829Z","dependency_job_id":"a6fcee82-46bb-434a-8714-2c4bac26ac3a","html_url":"https://github.com/dotnet/extensions","commit_stats":{"total_commits":1059,"total_committers":74,"mean_commits":14.31081081081081,"dds":0.6411709159584513,"last_synced_commit":"a12664ed4aa725d414ad824bee800bbca2e3d121"},"previous_names":["aspnet/extensions"],"tags_count":250,"template":false,"template_full_name":null,"purl":"pkg:github/dotnet/extensions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fextensions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fextensions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fextensions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fextensions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotnet","download_url":"https://codeload.github.com/dotnet/extensions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnet%2Fextensions/sbom","scorecard":{"id":212866,"data":{"date":"2025-08-11","repo":{"name":"github.com/dotnet/extensions","commit":"9e041fff9a8c06efce8dd335de03868ff9ee8556"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.5,"checks":[{"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":"Code-Review","score":9,"reason":"Found 23/24 approved changesets -- score normalized to 9","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":"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":"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":"Maintained","score":10,"reason":"30 commit(s) and 17 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: found token with 'none' permissions: .github/workflows/labeler-train.yml:1","Info: jobLevel 'issues' permission set to 'read': .github/workflows/labeler-train.yml:122","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/labeler-train.yml:143","Info: jobLevel 'issues' permission set to 'read': .github/workflows/labeler-train.yml:58","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/labeler-train.yml:77","Info: found token with 'none' permissions: .github/workflows/labeler-train.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/backport.yml:10","Warn: topLevel 'actions' permission set to 'write': .github/workflows/backport.yml:13","Warn: topLevel 'contents' permission set to 'write': .github/workflows/inter-branch-merge-flow.yml:9","Warn: no topLevel permission defined: .github/workflows/labeler-cache-retention.yml:1","Warn: no topLevel permission defined: .github/workflows/labeler-predict-issues.yml:1","Warn: no topLevel permission defined: .github/workflows/labeler-predict-pulls.yml:1","Warn: topLevel 'actions' permission set to 'write': .github/workflows/labeler-promote.yml:26","Warn: no topLevel permission defined: .github/workflows/labeler-train.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/update-sdk.yml:13","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":"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":"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":"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":"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":"Branch-Protection","score":5,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Info: 'branch protection settings apply to administrators' is required to merge on branch 'main'","Warn: 'stale review dismissal' is disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Warn: codeowners review is not required on branch 'main'","Warn: 'last push approval' is disabled on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on 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":"Pinned-Dependencies","score":9,"reason":"dependency not pinned by hash detected -- score normalized to 9","details":["Warn: npmCommand not pinned by hash: .github/workflows/locker.yml:33","Info:   2 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:  16 out of  16 third-party GitHubAction dependencies pinned","Info:   0 out of   1 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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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":6,"reason":"4 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6"],"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-17T01:04:44.828Z","repository_id":27453632,"created_at":"2025-08-17T01:04:44.828Z","updated_at":"2025-08-17T01:04:44.828Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32522252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"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":["dotnet"],"created_at":"2024-07-31T09:00:50.819Z","updated_at":"2026-05-02T04:01:18.699Z","avatar_url":"https://github.com/dotnet.png","language":"C#","funding_links":[],"categories":["C\\#","dotnet","C# #","Content","C#"],"sub_categories":["90. [TelemetryLogging](https://ignatandrei.github.io/RSCG_Examples/v2/docs/TelemetryLogging) , in the [EnhancementClass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) category"],"readme":"# Enriched Capabilities\n\nThis repository contains a suite of libraries that provide facilities commonly needed when creating production-ready applications. Initially developed to support high-scale and high-availability services within Microsoft, such as Microsoft Teams, these libraries deliver functionality that can help make applications more efficient, more robust, and more manageable.\n\nThe major functional areas this repo addresses are:\n- AI: Abstractions and middlewares for working with generative AI models and services.\n- Compliance: Mechanisms to help manage application data according to privacy regulations and policies, which includes a data annotation framework, audit report generation, and telemetry redaction.\n- Diagnostics: Provides a set of APIs that can be used to gather and report diagnostic information about the health of a service.\n- Contextual Options: Extends the .NET Options model to enable experimentations in production.\n- Resilience: Builds on top of the popular Polly library to provide sophisticated resilience pipelines to make applications robust to transient errors.\n- Telemetry: Sophisticated telemetry facilities provide enhanced logging, metering, tracing, and latency measuring functionality.\n- AspNetCore extensions: Provides different middlewares and extensions that can be used to build high-performance and high-availability ASP.NET Core services.\n- Static Analysis: Curated static analysis settings to help improve your code.\n- Testing: Dramatically simplifies testing around common .NET abstractions such as ILogger and the TimeProvider.\n\n[![Build Status](https://dev.azure.com/dnceng-public/public/_apis/build/status%2Fdotnet%2Fextensions%2Fextensions-ci?branchName=main)](https://dev.azure.com/dnceng-public/public/_build/latest?definitionId=16\u0026branchName=main)\n[![Help Wanted](https://img.shields.io/github/issues/dotnet/extensions/help%20wanted?style=flat-square\u0026color=%232EA043\u0026label=help%20wanted)](https://github.com/dotnet/extensions/labels/help%20wanted)\n[![Discord](https://img.shields.io/discord/732297728826277939?style=flat-square\u0026label=Discord\u0026logo=discord\u0026logoColor=white\u0026color=7289DA)](https://aka.ms/dotnet-discord)\n\n## How can I contribute?\n\nWe welcome contributions! Many people all over the world have helped make this project better.\n\n* [Contributing](CONTRIBUTING.md) explains what kinds of contributions we welcome\n* [Build instructions](docs/building.md) explains how to build and test\n\n## Reporting security issues and security bugs\n\nSecurity issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) \u003csecure@microsoft.com\u003e. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://www.microsoft.com/msrc/faqs-report-an-issue). You can also find these instructions in this repo's [Security doc](SECURITY.md).\n\nAlso see info about related [Microsoft .NET Core and ASP.NET Core Bug Bounty Program](https://www.microsoft.com/msrc/bounty-dot-net-core).\n\n## Useful Links\n\n* [.NET Core source index](https://source.dot.net) / [.NET Framework source index](https://referencesource.microsoft.com)\n* [API Reference docs](https://docs.microsoft.com/dotnet/api)\n* [.NET API Catalog](https://apisof.net) (incl. APIs from daily builds and API usage info)\n* [API docs writing guidelines](https://github.com/dotnet/dotnet-api-docs/wiki) - useful when writing /// comments\n* [.NET Discord Server](https://aka.ms/dotnet-discord) - a place to discuss the development of .NET and its ecosystem\n\n## .NET Foundation\n\nThis project is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project.\n\nThere are many .NET related projects on GitHub.\n\n* [.NET home repo](https://github.com/Microsoft/dotnet) - links to 100s of .NET projects, from Microsoft and the community.\n* [ASP.NET Core home](https://docs.microsoft.com/aspnet/core) - the best place to start learning about ASP.NET Core.\n\nThis project has adopted the code of conduct defined by the [Contributor Covenant](https://contributor-covenant.org) to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](https://www.dotnetfoundation.org/code-of-conduct).\n\nGeneral .NET OSS discussions: [.NET Foundation Discussions](https://github.com/dotnet-foundation/Home/discussions)\n\n## License\n\n.NET (including the runtime repo) is licensed under the [MIT](LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnet%2Fextensions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotnet%2Fextensions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnet%2Fextensions/lists"}