{"id":16587471,"url":"https://github.com/protomorphine/immutableanalyzer","last_synced_at":"2026-02-25T18:05:52.691Z","repository":{"id":223041075,"uuid":"759161634","full_name":"protomorphine/ImmutableAnalyzer","owner":"protomorphine","description":"Roslyn Analyzer to check immutability of classes on compile time.","archived":false,"fork":false,"pushed_at":"2025-02-08T09:01:53.000Z","size":6462,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-12T20:45:38.567Z","etag":null,"topics":["immutability","immutable","roslyn","roslyn-analyzer","roslyn-analyzers"],"latest_commit_sha":null,"homepage":"https://protomorphine.github.io/ImmutableAnalyzer/","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/protomorphine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2024-02-17T20:17:28.000Z","updated_at":"2025-10-08T19:36:07.000Z","dependencies_parsed_at":"2024-03-14T06:33:39.126Z","dependency_job_id":"ec3e8a01-29d6-4ba0-b234-c34f2ab57166","html_url":"https://github.com/protomorphine/ImmutableAnalyzer","commit_stats":null,"previous_names":["protomorphine/immutableanalyzer"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/protomorphine/ImmutableAnalyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protomorphine%2FImmutableAnalyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protomorphine%2FImmutableAnalyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protomorphine%2FImmutableAnalyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protomorphine%2FImmutableAnalyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/protomorphine","download_url":"https://codeload.github.com/protomorphine/ImmutableAnalyzer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protomorphine%2FImmutableAnalyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29833788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T17:57:15.019Z","status":"ssl_error","status_checked_at":"2026-02-25T17:56:11.472Z","response_time":61,"last_error":"SSL_read: 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":["immutability","immutable","roslyn","roslyn-analyzer","roslyn-analyzers"],"created_at":"2024-10-11T22:54:19.505Z","updated_at":"2026-02-25T18:05:52.675Z","avatar_url":"https://github.com/protomorphine.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Immutable Analyzer\n[![Tests](https://github.com/protomorphine/ImmutableAnalyzer/actions/workflows/test-report.yaml/badge.svg)](https://github.com/protomorphine/ImmutableAnalyzer/runs/36881446303)\n[![Docs](https://github.com/protomorphine/ImmutableAnalyzer/actions/workflows/docs.yml/badge.svg?branch=master)](https://github.com/protomorphine/ImmutableAnalyzer/actions/workflows/docs.yml)\n\nThis project is a .NET analyzer tool that utilizes Roslyn to check a class for immutability based on\nthe types of it's properties and their accessor list.\n\n## Overview\n\nImmutability is a key concept in functional programming and can help  prevent bugs related to mutable state.   \nThe purpose of this tool is to help developers ensure that their classes follow immutability principles,\nwhich can lead to more stable and predictable code.\n\n## How To Use\n\u003cdiv class=\"tabbed\"\u003e\n\n- \u003cb class=\"tab-title\"\u003eManually\u003c/b\u003e\n    Get the sources of analyzer projects\n    ```bash\n    $ git clone https://github.com/protomorphine/ImmutableAnalyzer\n    ```\n    Add project reference to your `.csproj` file:\n    ```xml\n    \u003cItemGroup\u003e\n        \u003cProjectReference Include=\"../ImmutableAnalyzer.Attributes/ImmutableAnalyzer.Attributes.csproj\" /\u003e\n        \u003cProjectReference Include=\"../ImmutableAnalyzer.CodeFixes/ImmutableAnalyzer.CodeFixes.csproj\" /\u003e\n        \u003cProjectReference Include=\"../ImmutableAnalyzer/ImmutableAnalyzer.csproj\" OutputItemType=\"Analyzer\" ReferenceOutputAssembly=\"false\" /\u003e\n    \u003c/ItemGroup\u003e\n    ```\n- \u003cb class=\"tab-title\"\u003eNuget\u003c/b\u003e\n    Add the NuGet Package to your project:\n\n    ```sh\n    dotnet add package Protomorphine.ImmutableAnalyzer\n    ```\n\n\u003c/div\u003e\n\n## Documentation\nMade with:\n- [Doxygen](https://www.doxygen.nl/)\n- [doxygen-awesome-css](https://github.com/jothepro/doxygen-awesome-css)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotomorphine%2Fimmutableanalyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprotomorphine%2Fimmutableanalyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotomorphine%2Fimmutableanalyzer/lists"}