{"id":17046495,"url":"https://github.com/tkellogg/netlint","last_synced_at":"2026-02-11T20:02:58.036Z","repository":{"id":138884205,"uuid":"1927319","full_name":"tkellogg/NetLint","owner":"tkellogg","description":"A quality tool for testing conventions in .NET web apps \u0026 libraries","archived":false,"fork":false,"pushed_at":"2011-07-24T04:23:51.000Z","size":4952,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-31T20:52:48.991Z","etag":null,"topics":[],"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/tkellogg.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":null,"security":null,"support":null}},"created_at":"2011-06-21T03:58:06.000Z","updated_at":"2013-12-14T18:05:50.000Z","dependencies_parsed_at":"2023-03-14T02:15:45.603Z","dependency_job_id":null,"html_url":"https://github.com/tkellogg/NetLint","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/tkellogg/NetLint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkellogg%2FNetLint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkellogg%2FNetLint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkellogg%2FNetLint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkellogg%2FNetLint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tkellogg","download_url":"https://codeload.github.com/tkellogg/NetLint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkellogg%2FNetLint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29343683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T18:58:20.535Z","status":"ssl_error","status_checked_at":"2026-02-11T18:56:44.814Z","response_time":97,"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":[],"created_at":"2024-10-14T09:46:28.514Z","updated_at":"2026-02-11T20:02:57.999Z","avatar_url":"https://github.com/tkellogg.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"NetLint: Sanity checks for .NET projects\r\n========================================\r\n\r\nThis tool is intended for checking that the files in a ASP.NET web project (csproj file) match  what actually exists on the filesystem. We were noticing that after some merges, a JavaScript file might be incidentally dropped from the project file. We also noticed that QA wasn't particularly fond of us saying *oh, it's just a missing JavaScript file.*\r\n\r\nIt's easiest when included in automated tests, though it has no dependencies on NUnit or any other testing framework. It reads the project file and looks for content that is supposed to be on disk, and it looks on disk for content that is supposed to be in the project file. If anything is out of place it fails with a detailed exception message summarizing all failures.\r\n\r\nExample Usage\r\n---------------------------------------\r\n\r\nThis is how you might use NetLint in a test method:\r\n\r\n    [Test]\r\n    public void filesystem_matches_csproj()\r\n    {\r\n        NetLint.CheckWebProject(@\"..\\WebApp\\WebApp.csproj\");\r\n    }\r\n\r\nAnd if the defaults don't satisfy your needs, add extra config options:\r\n\r\n    [Test]\r\n    public void filesystem_advanced_usage()\r\n    {\r\n        NetLint.CheckkWebProject(@\"..\\WebApp\\WebApp.csproj\", config =\u003e {\r\n            config.IgnorePattern(\"*.txt\");\r\n            config.AddPattern(\"*.fshtml\"); // coming soon ;)\r\n        });\r\n    }\r\n\t\r\nIf you're using NUnit, here is a convenient test for running through a lot of projects using the `TestCase` attribute:\r\n\r\n\t[TestFixture]\r\n\t[Category(\"Integration\")] // these take a few seconds to complete\r\n\tclass NetLintTests\r\n\t{\r\n\t\t[Test]\r\n\t\t[TestCase(\"kpa.common\")]\r\n\t\t[TestCase(\"kpa.common.nhibernate\")]\r\n\t\t[TestCase(\"kpa.common.nhibernate.tests\")]\r\n\t\t[TestCase(\"kpa.common.org\")]\r\n\t\t[TestCase(\"kpa.common.org.tests\")]\r\n\t\t[TestCase(\"kpa.common.tests\")]\r\n\t\t[TestCase(\"kpa.common.web\")]\r\n\t\t[TestCase(\"kpa.common.web.tests\")]\r\n\t\t[TestCase(\"kpa.common.workflow\")]\r\n\t\t[TestCase(\"kpa.common.workflow.tests\")]\r\n\t\t[TestCase(\"kpa.documents\")]\r\n\t\t[TestCase(\"kpa.documents.test\")]\r\n\t\t[TestCase(\"kpa.finance\")]\r\n\t\t[TestCase(\"kpa.finance.service\")]\r\n\t\t[TestCase(\"kpa.finance.tests\")]\r\n\t\t[TestCase(\"kpa.learning\")]\r\n\t\t[TestCase(\"kpa.learning.test\")]\r\n\t\t[TestCase(\"kpa.reporting\")]\r\n\t\tpublic void each_project_is_cononical(string name)\r\n\t\t{\r\n\t\t\tNetLint.CheckWebProject(string.Format(\"../../../{0}/{0}.csproj\", name));\r\n\t\t}\r\n\t}\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkellogg%2Fnetlint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftkellogg%2Fnetlint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkellogg%2Fnetlint/lists"}