{"id":21406325,"url":"https://github.com/visual-regression-tracker/sdk-dotnet","last_synced_at":"2025-07-15T11:43:03.918Z","repository":{"id":42969476,"uuid":"319430393","full_name":"Visual-Regression-Tracker/sdk-dotnet","owner":"Visual-Regression-Tracker","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-11T20:48:07.000Z","size":36,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-10T15:18:46.042Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Visual-Regression-Tracker.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-07T20:01:28.000Z","updated_at":"2024-10-11T20:46:25.000Z","dependencies_parsed_at":"2024-10-22T14:04:54.759Z","dependency_job_id":null,"html_url":"https://github.com/Visual-Regression-Tracker/sdk-dotnet","commit_stats":{"total_commits":13,"total_committers":5,"mean_commits":2.6,"dds":0.6153846153846154,"last_synced_commit":"d991babcca613bc994e5f50b153e8b615826e397"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Visual-Regression-Tracker/sdk-dotnet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Visual-Regression-Tracker%2Fsdk-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Visual-Regression-Tracker%2Fsdk-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Visual-Regression-Tracker%2Fsdk-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Visual-Regression-Tracker%2Fsdk-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Visual-Regression-Tracker","download_url":"https://codeload.github.com/Visual-Regression-Tracker/sdk-dotnet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Visual-Regression-Tracker%2Fsdk-dotnet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265227897,"owners_count":23731059,"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","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-11-22T16:38:50.616Z","updated_at":"2025-07-14T00:32:23.969Z","avatar_url":"https://github.com/Visual-Regression-Tracker.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# .Net SDK for [Visual Regression Tracker](https://github.com/Visual-Regression-Tracker/Visual-Regression-Tracker)\n\n[![NuGet version](https://buildstats.info/nuget/VisualRegressionTracker)](https://www.nuget.org/packages/VisualRegressionTracker)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/0b98190cea064d6f9f1210da653ba37b)](https://www.codacy.com/gh/Visual-Regression-Tracker/sdk-dotnet?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=Visual-Regression-Tracker/sdk-dotnet\u0026amp;utm_campaign=Badge_Grade)\n[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/0b98190cea064d6f9f1210da653ba37b)](https://www.codacy.com/gh/Visual-Regression-Tracker/sdk-dotnet?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=Visual-Regression-Tracker/sdk-dotnet\u0026utm_campaign=Badge_Coverage)\n\n## Install\n\n```csharp\ndotnet package add VisualRegressionTracker\n```\n\n## Usage\n\n### Import\n\n```csharp\nusing VisualRegressionTracker;\n```\n\n### Configure connection\n\n#### As code\n```csharp\nconfig = new Config {\n    // apiUrl - URL where backend is running \n    ApiUrl=\"http://localhost:4200\",\n\n    // project - Project name or ID\n    Project=\"Default project\",\n\n    // apiKey - User apiKey\n    ApiKey=\"tXZVHX0EA4YQM1MGDD\",\n\n    // ciBuildId - Current git commit SHA\n    CiBuildId=\"commit_sha\",\n\n    // branch - Current git branch \n    BranchName=\"develop\",\n\n    // enableSoftAssert - Log errors instead of exceptions\n    EnableSoftAssert=false,\n};\n\nvrt = new VisualRegressionTracker(config);\n```\n\n#### Or, as JSON config file `vrt.json`\n```json\n{\n    \"apiUrl\":\"http://localhost:4200\",\n    \"project\":\"Default project\",\n    \"apiKey\":\"tXZVHX0EA4YQM1MGDD\",\n    \"ciBuildId\":\"commit_sha\",\n    \"branchName\":\"develop\",\n    \"enableSoftAssert\":false\n}\n```\n```csharp\nvrt = new VisualRegressionTracker();\n```\n\n#### Or, as environment variables\n```sh\nexport VRT_APIURL=\"http://localhost:4200\"\nexport VRT_PROJECT=\"Default project\"\nexport VRT_APIKEY=\"tXZVHX0EA4YQM1MGDD\"\nexport VRT_CIBUILDID=\"commit_sha\"\nexport VRT_BRANCHNAME=\"develop\"\nexport VRT_ENABLESOFTASSERT=true\n```\n```csharp\nvrt = new VisualRegressionTracker();\n```\n\n### Setup / Teardown\n\n```csharp\nawait using (await vrt.Start())\n{\n    ...\n    // track test runs\n    ...\n}\n```\n\nWithout using:\n```csharp\nawait vrt.Start()\n...\n// track test runs\n...\nawait vrt.Stop()\n```\n\n### Assert\n\n```csharp\nawait vrt.Track(\n    // Name to be displayed\n    \"Image name\",\n\n    // Base64 encoded string\n    image,\n\n    // Allowed mismatch tollerance in %\n    // Default: 0%\n    diffTollerancePercent: 1,\n\n    // Optional\n    os: \"Mac\",\n    browser: \"Chrome\",\n    viewport: \"800x600\",\n    device: \"PC\",\n    comment: \"test comment\",\n\n    // Array of areas to be ignored\n    ignoreAreas: new [] {\n        IgnoreArea(\n            // X-coordinate relative of left upper corner\n            10,\n            // Y-coordinate relative of left upper corner\n            20,\n            // Area width in px\n            300,\n            // Height width in px\n            400\n        )\n    },\n);\n```\n\n### Example with Microsoft Playwright\n\n#### Imports\n```csharp\nusing PlaywrightSharp;\nusing VisualRegressionTracker;\n```\n\n#### Capture a screenshot using Playwright\n```csharp\nusing var playwright = await Playwright.CreateAsync();\nawait using var browser = await playwright.Chromium.LaunchAsync();\nvar page = await browser.NewPageAsync();\nawait page.GoToAsync(\"https://github.com/Visual-Regression-Tracker/sdk-dotnet/tree/main\");\nvar screenshot = await page.ScreenshotAsync();\n```\n\n#### Track changes using Visual Regression Tracker\n```csharp\nvar vrt = new VisualRegressionTracker.VisualRegressionTracker();\nawait using var cleanup = await vrt.Start();\nawait vrt.Track(\"sdk-dotnet\", screenshot);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisual-regression-tracker%2Fsdk-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvisual-regression-tracker%2Fsdk-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisual-regression-tracker%2Fsdk-dotnet/lists"}