{"id":20082196,"url":"https://github.com/exercism/csharp-analyzer","last_synced_at":"2025-09-09T23:13:02.405Z","repository":{"id":34403644,"uuid":"175061003","full_name":"exercism/csharp-analyzer","owner":"exercism","description":"An analyser for C#","archived":false,"fork":false,"pushed_at":"2025-07-01T06:38:23.000Z","size":18889,"stargazers_count":16,"open_issues_count":14,"forks_count":7,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-08-05T00:09:16.947Z","etag":null,"topics":["community-contributions-paused","exercism-analyzer","exercism-tooling","maintained-autonomous"],"latest_commit_sha":null,"homepage":null,"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/exercism.png","metadata":{"funding":{"github":["exercism"],"custom":["https://exercism.org/donate"]},"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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-11T18:31:52.000Z","updated_at":"2025-07-01T06:38:27.000Z","dependencies_parsed_at":"2024-03-04T13:45:59.306Z","dependency_job_id":"fe97c480-0ee8-49e6-b715-9de868f5b085","html_url":"https://github.com/exercism/csharp-analyzer","commit_stats":{"total_commits":394,"total_committers":14,"mean_commits":"28.142857142857142","dds":"0.29187817258883253","last_synced_commit":"1012cefe84a2a0df54d483d0c9677a59d1e6e076"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/exercism/csharp-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Fcsharp-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Fcsharp-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Fcsharp-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Fcsharp-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exercism","download_url":"https://codeload.github.com/exercism/csharp-analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exercism%2Fcsharp-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272185885,"owners_count":24888333,"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-26T02:00:07.904Z","response_time":60,"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":["community-contributions-paused","exercism-analyzer","exercism-tooling","maintained-autonomous"],"created_at":"2024-11-13T15:42:21.743Z","updated_at":"2025-08-26T08:06:43.886Z","avatar_url":"https://github.com/exercism.png","language":"C#","funding_links":["https://github.com/sponsors/exercism","https://exercism.org/donate"],"categories":[],"sub_categories":[],"readme":"# Exercism C# analyzer\n\nAn [analyzer][analyzer-introduction] can automatically detect issues with submissions and comment on them.\n\nThe C# analyzer implements the [analyzer interface][analyzer-interface]. It uses [Roslyn][roslyn] to parse the submission's source code into syntax trees, which are then analyzed for known patterns.\n\n## Analyzing a solution\n\nTo analyze a solution, follow these steps:\n\n1. Open a command prompt in the root directory.\n1. Run `./analyze.ps1 \u003cexercise\u003e \u003cdirectory\u003e`. This script will run the analyzer on the specified directory.\n1. Once the script has completed, the analysis results will be written to `\u003cdirectory\u003e/analysis.json`.\n\n## Analyzing multiple solutions\n\nTo analyze multiple solutions at once, follow these steps:\n\n1. Open a command prompt in the root directory.\n1. Run `./bulk-analyze.ps1 \u003cexercise\u003e \u003cdirectory\u003e`. This script will run the analyzer on each directory sub-directory of `\u003cdirectory\u003e`.\n1. Once the script has completed, it will:\n   1. Output general staticics to the console.\n   1. Write detailed analysis results to `\u003cdirectory\u003e/bulk_analysis.json`.\n\n## Analyzing a solution using Docker\n\nTo analyze a solution using a Docker container, follow these steps:\n\n1. Open a command prompt in the root directory.\n1. Run `./run-in-docker.ps1 \u003cexercise\u003e \u003cdirectory\u003e`. This script will:\n   1. Build the analyzer Docker image (if necessary).\n   1. Run the analyzer Docker image (as a container), passing the specified `exercise` and `directory` arguments.\n1. Once the script has completed, the analysis result can be found at `\u003cdirectory\u003e/analysis.json`.\n\nNote that the Docker image is built using the [.NET IL Linker](https://github.com/dotnet/core/blob/master/samples/linker-instructions.md#using-the-net-il-linker), which is why building can be quite slow.\n\n## Source code formatting\n\nThis repository uses the [dotnet-format tool](https://github.com/dotnet/format/) to format the source code. There are no custom rules; we just use the default formatting. You can format the code by running the `./format.ps1` command.\n\n### Scripts\n\nThe scripts in this repository are written in PowerShell. As PowerShell is cross-platform nowadays, you can also install it on [Linux](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-6) and [macOS](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-6).\n\n[analyzer-introduction]: https://github.com/exercism/docs/blob/main/building/tooling/analyzers/README.md\n[analyzer-interface]: https://github.com/exercism/docs/blob/main/building/tooling/analyzers/interface.md\n[roslyn]: https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexercism%2Fcsharp-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexercism%2Fcsharp-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexercism%2Fcsharp-analyzer/lists"}