{"id":28700482,"url":"https://github.com/kurnakovv/stryker-net-action","last_synced_at":"2026-01-30T08:03:04.621Z","repository":{"id":298616719,"uuid":"998315481","full_name":"kurnakovv/stryker-net-action","owner":"kurnakovv","description":"Stryker .NET (Stryker Mutator) GitHub action 👽","archived":false,"fork":false,"pushed_at":"2025-12-28T08:44:38.000Z","size":141,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-12-30T17:16:11.286Z","etag":null,"topics":["actions","dotnet","github-actions","mutation","mutation-test","mutation-testing","mutation-tests","stryker","stryker-mutator","stryker-net","stryker-reporter","tests"],"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/kurnakovv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"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":"2025-06-08T10:54:12.000Z","updated_at":"2025-12-28T08:44:39.000Z","dependencies_parsed_at":"2025-06-12T02:22:37.252Z","dependency_job_id":"6da4995a-fc35-429a-a1a1-497f290def27","html_url":"https://github.com/kurnakovv/stryker-net-action","commit_stats":null,"previous_names":["kurnakovv/stryker-net-action"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/kurnakovv/stryker-net-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurnakovv%2Fstryker-net-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurnakovv%2Fstryker-net-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurnakovv%2Fstryker-net-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurnakovv%2Fstryker-net-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurnakovv","download_url":"https://codeload.github.com/kurnakovv/stryker-net-action/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurnakovv%2Fstryker-net-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28908840,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T06:42:00.998Z","status":"ssl_error","status_checked_at":"2026-01-30T06:41:58.659Z","response_time":66,"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":["actions","dotnet","github-actions","mutation","mutation-test","mutation-testing","mutation-tests","stryker","stryker-mutator","stryker-net","stryker-reporter","tests"],"created_at":"2025-06-14T11:07:57.634Z","updated_at":"2026-01-30T08:03:04.615Z","avatar_url":"https://github.com/kurnakovv.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# [![S](https://raw.githubusercontent.com/stryker-mutator/stryker-mutator.github.io/6026230eaa82a130950a859e523a703d7f30f291/static/images/stryker-80x80.png)](https://github.com/stryker-mutator/stryker-net)tryker.NET GitHub action \u003ca href=\"https://github.com/kurnakovv/stryker-net-action\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/jpb06/jpb06/master/icons/GithubActions-Dark.svg\" width=\"80\" /\u003e\u003c/a\u003e\n\n![Visitors](https://api.visitorbadge.io/api/VisitorHit?user=kurnakovv\u0026repo=stryker-net-action\u0026countColor=%237B1E7A\u0026style=flat)\n[![Stryker.NET mutation testing (latest version)](https://github.com/kurnakovv/stryker-net-action/actions/workflows/latests-release-version-test.yml/badge.svg)](https://github.com/kurnakovv/stryker-net-action/actions/workflows/latests-release-version-test.yml)\n[![Test with all params](https://github.com/kurnakovv/stryker-net-action/actions/workflows/all-params-test.yml/badge.svg)](https://github.com/kurnakovv/stryker-net-action/actions/workflows/all-params-test.yml)\n[![Test with all params disabled](https://github.com/kurnakovv/stryker-net-action/actions/workflows/disable-all-params-test.yml/badge.svg)](https://github.com/kurnakovv/stryker-net-action/actions/workflows/disable-all-params-test.yml)\n[![Test without params](https://github.com/kurnakovv/stryker-net-action/actions/workflows/without-params-test.yml/badge.svg)](https://github.com/kurnakovv/stryker-net-action/actions/workflows/without-params-test.yml)\n\n\u003c/div\u003e\n\nThis is a GitHub action that runs the [Stryker.NET](https://stryker-mutator.io/docs/stryker-net/introduction/) tool 👽\n\n# 💡 Features\n* 🏡 Generate a report for source branch\n* 💾 Download the report\n* 📊 Upload the report to the dashboard\n* 📩 Send a report message when PR is opened\n* 🆚 Compare source and target branches\n\n# 🚀 Quick start\n\n1️⃣ Install `dotnet-stryker` (optional) | [how?](https://stryker-mutator.io/docs/stryker-net/getting-started/#install-in-project)\n\n2️⃣ Add a config file via terminal\n```\ndotnet stryker init --config-file \".config/stryker-config.json\"\n```\nOr just create an empty file `.config/stryker-config.json`\n\n3️⃣ Open `.config/stryker-config.json` and set minimum parameters\n```json\n{\n    \"stryker-config\": {\n        \"reporters\": [\n            \"html\",\n            \"dashboard\",\n            \"progress\"\n        ],\n        \"project-info\": {\n            \"name\": \"github.com/OWNER/YOUR_REPOSITORY_NAME\"\n        }\n    }\n}\n```\n\nReplace:\n* **OWNER** - with your GitHub username (e.g. `kurnakovv`)\n* **YOUR_REPOSITORY_NAME** - with your repository name (e.g. `stryker-net-action`)\n\n4️⃣ Add GitHub secret ([how?](https://docs.github.com/en/actions/how-tos/security-for-github-actions/security-guides/using-secrets-in-github-actions)):\n* **Name** - `STRYKER_DASHBOARD_API_KEY`\n* **Value** - dashboard API key ([how to get?](https://stryker-mutator.io/docs/General/dashboard/))\n\n5️⃣ Add the GitHub Action workflow at `.github/workflows/stryker-net.yml`\n```yml\nname: Stryker.NET mutation testing\n\non: [push, pull_request]\n\njobs:\n  stryker_net:\n    runs-on: ubuntu-latest\n    # permissions.pull-request:write is required to send a report message to a pull request (when send-report-message: \"true\")\n    permissions:\n      pull-requests: write\n    name: Stryker.NET GitHub action\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v4\n\n      - name: Setup .NET\n        uses: actions/setup-dotnet@v4\n        with:\n          dotnet-version: 9.0.x\n\n      - name: Stryker.NET\n        uses: kurnakovv/stryker-net-action@v1.0.0\n        with:\n          config-path: \".config/stryker-config.json\"\n          dashboard-api-key: ${{ secrets.STRYKER_DASHBOARD_API_KEY }}\n```\n\n6️⃣ Push all changes and open a PR on the default branch ([what is it?](https://stackoverflow.com/questions/71535128/what-exactly-is-the-default-git-branch)).\n\nOnce the pipeline completes successfully, you'll see something like this:\n![PR report](docs/images/PR-report.png)\n\n\u003e [!NOTE]\n\u003e If some steps do not suit you (e.g. you don't want to use the [dashboard](https://stryker-mutator.io/docs/General/dashboard/) or send PR report message), you can disable/remove those options\n\n# ⚙️ Configuration options\n\n| Input | Location | Description | Required | Default |\n| ----- | -------- | ----------- | -------- | ------- |\n| config-path | with | File path where configuration is located, for example `.config/stryker-config.json` / [docs](https://stryker-mutator.io/docs/stryker-net/configuration) | false | --- |\n| dashboard-api-key | with | Stryker dashboard API key / [docs](https://stryker-mutator.io/docs/General/dashboard) | false | --- |\n| report-source-branch | with | Run stryker report in current source branch (for default branch this parameter is always true) | false | true |\n| report-source-branch-diff | with | Run Stryker report and compare default branch with current source branch. I do not recommend using it, as it works with bugs, this feature is waiting for a fix in this [issue](https://github.com/stryker-mutator/stryker-net/issues/3234) | false | false |\n| upload-report | with | Upload report to GitHub cloud / [what's under the hood?](https://github.com/marketplace/actions/upload-a-build-artifact) | false | true |\n| send-report-message | with | Send report message when PR is opened (add `permissions.pull-requests: write` to action / [how?](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/controlling-permissions-for-github_token)) / [what's under the hood?](https://github.com/marketplace/actions/add-pr-comment) | false | true |\n\n\u003e [!NOTE]\n\u003e if you are missing some configurations, you can add them to your configuration file `.config/stryker-config.json` | [docs](https://stryker-mutator.io/docs/stryker-net/configuration/)\n\n# ❔ Why\n* The official [docs](https://stryker-mutator.io/docs/stryker-net/stryker-in-pipeline/) use Azure DevOps syntax, not GitHub Action\n* The official [repository](https://github.com/stryker-mutator/github-action) doesn't work properly and has limited functionality. As the author stated ([source](https://github.com/stryker-mutator/github-action/issues/23#issuecomment-2553581342)):\n  \u003e This project is a proof of concept created during a hackfest, there is no active maintainer for this project at this time\n* The unofficial [repository](https://github.com/Pub-Dev/stryker-net-action) contains no code and hasn't been updated in over 3 years\n* You can use the source code, but it is too large to duplicate it in each repository, which violates the DRY principle\n\nThat's **why** I decided to create this action 🔥\n\n# 🤝 Contributing\nIf you'd like to contribute and help improve this project — your support is very welcome ❤️\n\nInstructions for all members are [here](CONTRIBUTING.md)\n\n# ⭐ Give a star\nIf you like this project, please give it a ⭐ — thanks! 🤗\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkurnakovv%2Fstryker-net-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkurnakovv%2Fstryker-net-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkurnakovv%2Fstryker-net-action/lists"}