{"id":36790441,"url":"https://github.com/csmith/legotapas","last_synced_at":"2026-01-20T16:36:26.023Z","repository":{"id":39591281,"uuid":"417656971","full_name":"csmith/legotapas","owner":"csmith","description":"DNS provider build constraints for lego","archived":false,"fork":false,"pushed_at":"2025-12-15T23:16:47.000Z","size":418,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-19T07:45:54.111Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/csmith.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-10-15T22:48:41.000Z","updated_at":"2025-12-15T23:16:43.000Z","dependencies_parsed_at":"2023-01-22T16:45:47.275Z","dependency_job_id":"c63c331a-1630-4012-91e5-913f09bf32fb","html_url":"https://github.com/csmith/legotapas","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/csmith/legotapas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csmith%2Flegotapas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csmith%2Flegotapas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csmith%2Flegotapas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csmith%2Flegotapas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csmith","download_url":"https://codeload.github.com/csmith/legotapas/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csmith%2Flegotapas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":"2026-01-12T13:25:08.771Z","updated_at":"2026-01-12T13:25:08.856Z","avatar_url":"https://github.com/csmith.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lego Tapas\n\nProvides build constraints for the DNS providers found in [lego](https://github.com/go-acme/lego).\n\n## How to use\n\nNormally when using lego you'd call `dns.NewDNSChallengeProviderByName(providerName string)` to get\nan instance of the DNS provider. To use legotapas replace this with a call to\n`legotapas.CreateProvider(providerName string)`. It has the same signature, so shouldn't take more\nthan a couple of seconds.  If you don't specify any build constraints then this will function exactly\nas it did before.\n\nNow you can use build constraints to select a single provider to compile with, instead of pulling\nin every single provider and all of their dependencies. For example to support only the `httpreq`\nprovider you would build with:\n\n```\ngo build -tags lego_httpreq example.com/your/project\n```\n\nWith this build constraint, your binary will only pull in the httpreq provider and not the much\nlarger providers such as GCP and AWS. In this particular case the binary is 30MB smaller.\n\n## FAQ\n\n### What's the point?\n\nI compile most things I run in production. It upsets me that I'm compiling in support for a\nmillion and one DNS providers that I'll never use, and otherwise very simple tools get ballooned\nby 30MB or so because they're pulling in really complicated libraries for other DNS providers.\n\nObviously if you're building a general purpose release to be used in multiple environments\nthen letting the user select which one is probably the best way to go, but using legotapas\nallows for advanced users to customise the build to their need while still maintaining the\ngeneral compatibility.\n\n### Can I enable more than one provider?\n\nNo. I don't think this is possible with the way I'm using build constraints (without an\nexponential explosion covering every possible combinations). I'm open to suggestions for\nbetter ways to do this - please raise an issue or submit a PR!\n\n### How to update when new providers are added\n\nThe application under `./cmd/generate` finds all available packages and executes templates\nfor each detected provider. Simply update the lego dependency with `go get` and then run\nthe generate command to refresh the templates.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsmith%2Flegotapas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsmith%2Flegotapas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsmith%2Flegotapas/lists"}