{"id":13592579,"url":"https://github.com/pdevito3/craftsman","last_synced_at":"2025-05-14T00:09:30.749Z","repository":{"id":37538759,"uuid":"283397604","full_name":"pdevito3/craftsman","owner":"pdevito3","description":"A .NET scaffolding tool to help you stop worrying about boilerplate and focus on your business logic 🚀","archived":false,"fork":false,"pushed_at":"2024-12-06T13:08:58.000Z","size":2964,"stargazers_count":1144,"open_issues_count":10,"forks_count":70,"subscribers_count":37,"default_branch":"develop","last_synced_at":"2025-04-12T17:45:09.070Z","etag":null,"topics":["automated-test-generation","automated-testing","cli","cli-commands","cqrs","craftsman","csharp","ddd","docker","dotnet","dotnet-core","dotnet8","event-driven-architecture","masstransit","mediatr","rabbitmq","scaffolding","template-engine","vertical-slice-architecture","web-api"],"latest_commit_sha":null,"homepage":"https://wrapt.dev","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/pdevito3.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","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},"funding":{"github":["pdevito3"]}},"created_at":"2020-07-29T04:26:53.000Z","updated_at":"2025-04-07T09:11:11.000Z","dependencies_parsed_at":"2023-02-12T20:16:08.764Z","dependency_job_id":"fc1906b8-c83b-4048-8ada-8aeef0069168","html_url":"https://github.com/pdevito3/craftsman","commit_stats":{"total_commits":1453,"total_committers":8,"mean_commits":181.625,"dds":0.006882312456985562,"last_synced_commit":"49b723136cd52e06ad3fe45efa1687b703c20608"},"previous_names":[],"tags_count":78,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdevito3%2Fcraftsman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdevito3%2Fcraftsman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdevito3%2Fcraftsman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdevito3%2Fcraftsman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pdevito3","download_url":"https://codeload.github.com/pdevito3/craftsman/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254044177,"owners_count":22005094,"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":["automated-test-generation","automated-testing","cli","cli-commands","cqrs","craftsman","csharp","ddd","docker","dotnet","dotnet-core","dotnet8","event-driven-architecture","masstransit","mediatr","rabbitmq","scaffolding","template-engine","vertical-slice-architecture","web-api"],"created_at":"2024-08-01T16:01:10.968Z","updated_at":"2025-05-14T00:09:30.734Z","avatar_url":"https://github.com/pdevito3.png","language":"C#","readme":"# Craftsman Scaffolds Your Boilerplate!\n\nCraftsman is the workhorse behind the [Wrapt](https://wrapt.dev) framework and provides a suite of CLI commands for quickly scaffolding out new files and projects for your .NET Web APIs with simple CLI commands and configuration files.\n\n\u003cp\u003e\n    \u003ca href=\"https://github.com/pdevito3/craftsman/releases\"\u003e\u003cimg src=\"https://img.shields.io/nuget/v/craftsman.svg\" alt=\"Latest Release\"\u003e\u003c/a\u003e   \n    \u003ca href=\"https://github.com/pdevito3/craftsman/blob/master/LICENSE.txt\"\u003e\u003cimg src =\"https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/TBq2rVkSEj\" target=\"\\_parent\"\u003e\n    \u003cimg alt=\"\" src=\"https://img.shields.io/badge/Discord-Wrapt-%235865F2\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n------\n\n## Quickstart\n\n- Make sure you have the [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet-core/8.0) installed, along with [EF Core](https://learn.microsoft.com/en-us/ef/core/cli/dotnet)\n- Install the craftsman tool\n\n```bash\ndotnet tool install -g craftsman\n```\n\n* Spin up an example project\n\n```bash\ncraftsman new example MyFirstProject\n```\n\n## Documentation\n\nFor all the documentation on how to use Craftsman, visit [wrapt.dev](https://wrapt.dev).\n\n## Upcoming Features\n\nYou can find some highlights below. I have some reminement items in the pipe and I'm working through a deep example project the really dogfood things and will be making updates around my finding from there.\n\nHave a request for something you don't see in the project? Join [our discord](https://discord.gg/TBq2rVkSEj) and let's talk about it!\n\n### Some 0.26 highlights\n\n✅ Primary Constructors\n\n✅ Updated API Versioning\n\n### Some 0.25 highlights\n\n✅ .NET 8 scaffolding\n\n✅ Archicture test enhancement\n\n✅ Remove obsolete BFF commands \n\n✅ Fix test actions\n\n### Some 0.24 highlights\n\n✅ Logging enhancements and masking\n\n✅ Dependabot and Github Actions for tests\n\n✅ `string[]` support for Postgres\n\n✅ Value Object property scaffolding\n\n### Some 0.23 highlights\n\n✅ Moq -\u003e NSub\n\n✅ New `GetAll` feature\n\n✅ Hangfire scaffolding\n\n### Some 0.22 highlights\n\n✅ Move from Sieve to [QueryKit](https://github.com/pdevito3/querykit)\n\n✅ TestContainers updated\n\n✅ Records for queries and commands and DTOs\n\n✅ Relationships overhaul\n\n### Some 0.21 highlights\n\n✅ New default error handler middleware (existing still optional)\n\n✅ Mapster -\u003e Mapperly\n\n### Some 0.20 highlights\n\n✅ Intermediate model to not pass DTOs to domain\n\n✅ Specification support\n\n### Some 0.19 highlights\n\n✅ Test projects updated to use XUnit\n\n✅ .NET 7\n\n✅ Integration tests have better service collection scoping and now have a service collection per test. This makes service mocking possible without clashing with other tests\n\n✅ Options Pattern Configuration\n\n### Some 0.18 highlights\n\n✅ Environment Service\n\n✅ Built in Migrations\n\n✅ Various testing and other improvements\n\n### Some 0.17 highlights\n\n✅ Users and Roles managed in each boundary (AuthN still separate)\n\n✅ New `Email` Value Object\n\n✅ Functional Tests use Docker DB and has other cleanup items\n\n✅ NextJS template (still a WIP and not documented, but you can find [the sandbox for things here](https://github.com/pdevito3/next-template-wrapt-sand) and poke through the Craftsman code if you'd like. Can answer questions in out Discord as well.)\n\n### Some v0.16 highlights\n\n✅ Testing Optimizations\n\n✅ Common Value Object Scaffolding\n\n✅ Auth Server rewrite with Keycloak\n\n✅ Move permission guards to feature\n\n✅ Migrate `Automapper` to `Mapster`\n\n\n\n### Some v0.15 highlights\n\n✅ Updated CLI command structure\n\n✅ OpenTelemetry \u0026 Jaeger Tracing\n\n✅ Built in Domain Event support (with unit test scaffolding)\n\n✅ Moved to `Program.cs` only format\n\n✅ Added repository \u0026 unit of work abstractions for better testing and validation\n\n✅ SmartEnum property scaffolding support\n\n\n\n### Some v0.14 highlights\n\n✅ Duende BFF scaffolding\n\n✅ React scaffolding\n\n✅ Dockerfile and Docker Compose scaffolding\n\n\n\n### Some v0.13 highlights\n\n✅ DDD promoted entities (private setters, factory methods, associated fakers)\n\n✅ Huge permissions upgrade. Significantly simplified setup which resulted in a new library ([HeimGuard](https://github.com/pdevito3/heimguard)) that can be used in any .NET project.\n\n✅ New `register:producer` command\n\n✅ Added soft delete capability\n\n✅ Added Shared Kernel\n\n\n\n### Some v0.12 highlights\n\n✅ .NET 6 Scaffolding\n\n✅ Docker utility updates for integration tests using [Fluent Docker](https://github.com/mariotoffia/FluentDocker) 🐳\n\n✅  `add:feature` enhancement to add more than just ad-hoc features\n\n✅ `new:example` command to generate example projects with associated templates\n\n✅ Auth Server Scaffolding (In-Memory)\n\n✅ Auditable entities\n\n\n\n## Support\n\nIf Wrapt and Craftsman are saving you time and helping your projects, consider [sponsoring me on Github](https://github.com/sponsors/pdevito3) to support ongoing Wrapt development and make it even better!\n\n## Contributing\n\nTime is of the essence. Before developing a Pull Request I recommend opening a new [topic for discussion](https://github.com/pdevito3/craftsman/discussions). I also haven't had enough PR interest to take the time and put together a `contributing.md`, but if you are interested, I will definitely put together a detailed writeup.\n\n## Contact Me\n\nSometimes Github notifications get lost in the shuffle. If you file an issue and don't hear from me in 24-48 hours feel free to ping me on [twitter](https://twitter.com/pdevito3) or Discord (pdevito3#4244). We also have [own discord channel](https://discord.gg/TBq2rVkSEj) now for easy contact with me and larger community discussions!\n","funding_links":["https://github.com/sponsors/pdevito3"],"categories":["C#","C\\#","C# #","Architectural Style"],"sub_categories":["Clean Architecture"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdevito3%2Fcraftsman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdevito3%2Fcraftsman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdevito3%2Fcraftsman/lists"}