{"id":46847073,"url":"https://github.com/scalateams/mill-zio-http-gen","last_synced_at":"2026-03-10T15:01:26.737Z","repository":{"id":336889235,"uuid":"1150941188","full_name":"scalateams/mill-zio-http-gen","owner":"scalateams","description":"A zio-http-gen plugin for Mill build tool.","archived":false,"fork":false,"pushed_at":"2026-03-05T16:18:35.000Z","size":89,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-05T18:41:57.739Z","etag":null,"topics":["mill","mill-module","mill-plugin","scala","zio-http"],"latest_commit_sha":null,"homepage":"","language":"Scala","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/scalateams.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-05T21:42:33.000Z","updated_at":"2026-03-05T16:23:51.000Z","dependencies_parsed_at":"2026-03-10T15:01:08.402Z","dependency_job_id":null,"html_url":"https://github.com/scalateams/mill-zio-http-gen","commit_stats":null,"previous_names":["scalateams/mill-zio-http-gen"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/scalateams/mill-zio-http-gen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalateams%2Fmill-zio-http-gen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalateams%2Fmill-zio-http-gen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalateams%2Fmill-zio-http-gen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalateams%2Fmill-zio-http-gen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scalateams","download_url":"https://codeload.github.com/scalateams/mill-zio-http-gen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scalateams%2Fmill-zio-http-gen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30338560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T14:50:13.961Z","status":"ssl_error","status_checked_at":"2026-03-10T14:49:32.490Z","response_time":106,"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":["mill","mill-module","mill-plugin","scala","zio-http"],"created_at":"2026-03-10T15:00:49.996Z","updated_at":"2026-03-10T15:01:26.732Z","avatar_url":"https://github.com/scalateams.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mill-zio-http-gen\n\n![CI passing badge](https://github.com/scalateams/mill-zio-http-gen/actions/workflows/ci.yml/badge.svg?branch=main) ![Maven Central version badge](https://img.shields.io/maven-central/v/org.scalateams/mill-zio-http-gen_mill1_3) [![Scaladoc badge](https://img.shields.io/badge/Scaladoc-gray)](https://javadoc.io/doc/org.scalateams/mill-zio-http-gen_mill1_3/latest/org.scalateams.mill.zio.http.gen/index.html) [![Scala Steward helping badge](https://img.shields.io/badge/Scala_Steward-helping-blue.svg?style=flat\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAMAAAARSr4IAAAAVFBMVEUAAACHjojlOy5NWlrKzcYRKjGFjIbp293YycuLa3pYY2LSqql4f3pCUFTgSjNodYRmcXUsPD/NTTbjRS+2jomhgnzNc223cGvZS0HaSD0XLjbaSjElhIr+AAAAAXRSTlMAQObYZgAAAHlJREFUCNdNyosOwyAIhWHAQS1Vt7a77/3fcxxdmv0xwmckutAR1nkm4ggbyEcg/wWmlGLDAA3oL50xi6fk5ffZ3E2E3QfZDCcCN2YtbEWZt+Drc6u6rlqv7Uk0LdKqqr5rk2UCRXOk0vmQKGfc94nOJyQjouF9H/wCc9gECEYfONoAAAAASUVORK5CYII=)](https://github.com/scala-steward-org/scala-steward) [![GitHub stars badge](https://img.shields.io/github/stars/scalateams/mill-zio-http-gen?style=social)](https://github.com/scalateams/mill-zio-http-gen)\n\nA [zio-http-gen](https://github.com/zio/zio-http) plugin for Mill build tool.\n\n## Usage\n\n*build.mill*:\n```scala\n//| mvnDeps:\n//| - org.scalateams::mill-zio-http-gen::0.1.2\nimport mill.scalalib.*\nimport org.scalateams.mill.zio.http.gen.ZioHttpGenModule\n\nobject project extends ScalaModule with ZioHttpGenModule {\n\n  def mvnDeps      = super.mvnDeps() ++ Seq(mvn\"dev.zio::zio-http:3.10.0\")\n  def scalaVersion = \"3.3.7\"\n\n  object openapi extends OpenAPIModule {\n\n    def packagePrefix = Task { Seq(\"com\", \"example\") }\n  }\n}\n```\n\n```shell script\n\u003e mill project.compile\nGenerated 2 file(s) from .../openapi/openapi.yaml in package com.example\nCompiling compiler interface...\n...\ndone compiling\n```\n\n### Overriding default configuration\n\n*build.mill*:\n```scala\nobject openapi extends OpenAPIModule {\n\n  import org.scalateams.mill.zio.http.gen.parsers.Parser\n  import zio.http.gen.openapi.Config\n  \n  def config        = Task { Config.default.copy(commonFieldsOnSuperType = true) }\n  def packagePrefix = Task { Seq(\"com\", \"example\") }\n  def parsers       = Task { Map(\"yaml\" -\u003e ParserRef.of[Parser.yaml])\n  def sources       = Task.Sources(\"openapi\")\n}\n```\n\n### Providing specification dynamically\n\n```scala\nobject openapi extends OpenAPIModule {\n\n  import mill.*\n\n  def packagePrefix    = Task { Seq(\"com\", \"example\") }\n  def specification    = Task {\n    \"\"\"openapi: 3.1.0\n      |info:\n      |  title: User API\n      |  version: 1.0.0\n      |paths:\"\"\".stripMargin\n  }\n  def generatedSources = Task {\n    val content = specification() // think of downloading etc.\n    os.write.over(Task.dest / Path(\"openapi.yaml\"), content, createFolders = true)\n    Seq(PathRef(Task.dest))\n  }\n}\n```\n\n### Multiple generators\n\n```scala\nobject project extends ScalaModule with ZioHttpGenModule { self =\u003e\n\n  object openapi extends OpenAPIModule {\n\n    def packagePrefix = Task { Seq(\"com\", \"example\") }\n  }\n\n  object openapi_internal extends OpenAPIModule {\n\n    import mill.*\n\n    def packagePrefix = openapi.packagePrefix() ++ Seq(\"internal\")\n    def sources       = Task.Sources(self.moduleDir / \"internal\" / \"openapi\")\n  }\n}\n```\n\n## Related projects\n\n* [zio-http](https://github.com/zio/zio-http)\n* Inspired by [zio-http-sbt](https://github.com/zio/zio-http-sbt)\n\n## Contributing\n\nBefore committing run:\n\n```console\n$ ./mill __.style + __.test + __.publishLocal\n```\n\nAll contributions are welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalateams%2Fmill-zio-http-gen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscalateams%2Fmill-zio-http-gen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscalateams%2Fmill-zio-http-gen/lists"}