{"id":36482127,"url":"https://github.com/xchapter7x/y-assembly","last_synced_at":"2026-01-12T01:02:54.223Z","repository":{"id":64306604,"uuid":"159089412","full_name":"xchapter7x/y-assembly","owner":"xchapter7x","description":"y-assembly: A Yaml Assembler","archived":false,"fork":false,"pushed_at":"2019-01-23T16:45:16.000Z","size":33,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T03:35:44.887Z","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/xchapter7x.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}},"created_at":"2018-11-26T00:44:02.000Z","updated_at":"2021-07-26T05:33:58.000Z","dependencies_parsed_at":"2023-01-15T10:45:26.492Z","dependency_job_id":null,"html_url":"https://github.com/xchapter7x/y-assembly","commit_stats":null,"previous_names":["xchapter7x/yup"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/xchapter7x/y-assembly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xchapter7x%2Fy-assembly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xchapter7x%2Fy-assembly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xchapter7x%2Fy-assembly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xchapter7x%2Fy-assembly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xchapter7x","download_url":"https://codeload.github.com/xchapter7x/y-assembly/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xchapter7x%2Fy-assembly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28330166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"ssl_error","status_checked_at":"2026-01-12T00:36:15.229Z","response_time":60,"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-12T01:02:54.149Z","updated_at":"2026-01-12T01:02:54.215Z","avatar_url":"https://github.com/xchapter7x.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# y-assembly\nYAML Plus Imports: y-assembly\n\n[![CircleCI](https://circleci.com/gh/xchapter7x/y-assembly.svg?style=svg)](https://circleci.com/gh/xchapter7x/y-assembly)\n[![Go Report Card](https://goreportcard.com/badge/github.com/xchapter7x/y-assembly)](https://goreportcard.com/report/github.com/xchapter7x/y-assembly)\n[![GoDoc](https://godoc.org/github.com/xchapter7x/y-assembly?status.svg)](https://godoc.org/github.com/xchapter7x/y-assembly)\n### Description\n\nThis tool is meant to provide some generic \"imports\" or merging capability.\nOne can combine files and apply patch files which are yaml patch compliant.\nCombining this functionality with yaml references and/or envsubst, makes for a really powerful and \nflexible combination.\n\n### Install\n[Download Latest Releases Here](https://github.com/xchapter7x/y-assembly/releases/latest)\n\n```bash\n#Linux\n$ curl -sL https://github.com/xchapter7x/y-assembly/releases/download/v0.4.2/yaml_unix -o yaml \u0026\u0026 chmod +x yaml \u0026\u0026 mv yaml /usr/local/bin/.\n\n#OSX\n$ curl -sL https://github.com/xchapter7x/y-assembly/releases/download/v0.4.2/yaml_osx -o yaml \u0026\u0026 chmod +x yaml \u0026\u0026 mv yaml /usr/local/bin/.\n\n#Windows\n$ go to https://github.com/xchapter7x/y-assembly/releases/download/v0.4.2/yaml.exe and download\n```\n\n### Use case\n\nanywhere you are wrangling yaml (Kubernetes, BOSH, Concourse) this can help. It is generic, specifically built to provide enough flexibility to be used with any tool that likes yaml.\n\n\n### Assembly.yml fields and file behavior\n\n`version`: and integer value representing the compatibility of the assembly record \n\n`expand_aliases`: this will expand anchors and aliases in the output files (not dry but pure yaml)\n\n`base`: the base file, where all others are appended or modify (can be url or local file)\n\n`output`: where the output of the assembly operation will go (must be local)\n\n`imports`: an array of urls or local file paths, which will be appended to the base to create the output. the array order is the order in which the files will be combined.\n\n`patches`: an array of urls or local file paths, which will be patched on top of the fully assembled set of base and imports. the array order is the order in which the patches will be applied. uses [yaml-patch op files](https://github.com/krishicks/yaml-patch) for full set of commands check the compatible [json patch docs](https://tools.ietf.org/html/rfc6902)\n\n\n### Example\n```bash\n-\u003e % cd github.com/xchapter7x/y-assembly/test/e2e/cmd\n\n-\u003e % cat testdata/assembly.yml\n---\n- version: 1\n  base: \"testdata/base/base.yml\"\n  output: \"testdata/outputs/cool.yml\"\n  imports:\n  - \"https://raw.githubusercontent.com/xchapter7x/y-assembly/master/test/e2e/cmd/testdata/imports/import1.yml\"\n\n- version: 1\n  base: \"testdata/base/base.yml\"\n  output: \"testdata/outputs/out2.yml\"\n  imports:\n  - \"testdata/imports/import1.yml\"\n\n- version: 1\n  base: \"testdata/base/base.yml\"\n  output: \"testdata/outputs/out3.yml\"\n  imports:\n  - \"https://raw.githubusercontent.com/xchapter7x/y-assembly/master/test/e2e/cmd/testdata/imports/import1.yml\"\n  patches:\n  - \"testdata/patches/patch1.yml\"\n  \n-\u003e % ./yaml_osx build -c testdata/assembly.yml -p\n\n---\n#  testdata/outputs/out1.yml\nsomecool: thing\nwhich: has\nlots:\n- of\n- stuff\n\n- with\n- even\n- more\n- imports\n\n---\n#  testdata/outputs/out2.yml\nsomecool: thing\nwhich: has\nlots:\n- of\n- stuff\n\n- with\n- even\n- more\n- imports\n\n---\n#  testdata/outputs/out3.yml\nlots:\n- of\n- stuff\n- with\n- even\n- more\n- imports\nsomecool: thing\nwhich: had\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxchapter7x%2Fy-assembly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxchapter7x%2Fy-assembly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxchapter7x%2Fy-assembly/lists"}