{"id":49250545,"url":"https://github.com/launchbynttdata/launch-terraform-skeleton","last_synced_at":"2026-05-19T19:16:02.810Z","repository":{"id":353664358,"uuid":"1219385162","full_name":"launchbynttdata/launch-terraform-skeleton","owner":"launchbynttdata","description":"Files common across Launch's Terraform Modules. This Skeleton repository is automatically synchronized into the repositories that utilize it using Copier.","archived":false,"fork":false,"pushed_at":"2026-05-13T18:01:55.000Z","size":225,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-13T18:31:01.013Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Makefile","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/launchbynttdata.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-23T20:29:09.000Z","updated_at":"2026-05-13T16:10:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/launchbynttdata/launch-terraform-skeleton","commit_stats":null,"previous_names":["launchbynttdata/launch-terraform-skeleton"],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/launchbynttdata/launch-terraform-skeleton","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Flaunch-terraform-skeleton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Flaunch-terraform-skeleton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Flaunch-terraform-skeleton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Flaunch-terraform-skeleton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/launchbynttdata","download_url":"https://codeload.github.com/launchbynttdata/launch-terraform-skeleton/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Flaunch-terraform-skeleton/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33229299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T15:49:41.270Z","status":"ssl_error","status_checked_at":"2026-05-19T15:49:22.917Z","response_time":58,"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-04-25T00:03:13.797Z","updated_at":"2026-05-19T19:16:02.803Z","avatar_url":"https://github.com/launchbynttdata.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform Skeleton\n\nThis skeleton defines the set of core configurations and tools that apply to all Launch Terraform modules.\n\n```mermaid\nflowchart RL\n    template --\u003e|Pulls latest changes| skeleton\n    primitives --\u003e|Pulls latest changes| skeleton\n    template ---\u003e|Used in producing module repositories| modules\n    modules --\u003e|Produces| primitives\n\n    youarehere[\"\u003ch3\u003eYou Are Here\u003c/h3\u003e\"]\n    youarehere ==\u003e skeleton\n\n    template[\"\u003cstrong\u003e\u003ca href=\"https://github.com/launchbynttdata/launch-terraform-template\"\u003elaunch-terraform-template\u003c/a\u003e\u003c/strong\u003e\u003cbr/\u003e\u003cbr/\u003eImplements launch-terraform-skeleton, provides a starting point for expected files that make up a Launch Terraform primitive. This repository is used as a template source when other repositories are created.\"]\n\n    primitives[\"\u003cstrong\u003e\u003ca href=\"https://github.com/orgs/launchbynttdata/repositories?q=module_primitive\"\u003eTerraform Primitives\u003c/a\u003e\u003c/strong\u003e\u003cbr/\u003e\u003cbr/\u003eLaunch's Terraform modules, plus their tests, one per repository. These modules regularly look for updates in launch-terraform-skeleton and autoupdate themselves where possible.\"]\n\n    modules[\"\u003cstrong\u003e\u003ca href=\"https://github.com/launchbynttdata/launch-terraform-modules\"\u003elaunch-terraform-modules\u003c/a\u003e\u003c/strong\u003e\u003cbr/\u003e\u003cbr/\u003eTerragrunt repository defining all of our Terraform primitive modules. Our existing modules will be imported here, our new modules will be configured here going forward.\"]\n\n    skeleton[\"\u003cstrong\u003e\u003ca href=\"https://github.com/launchbynttdata/launch-terraform-skeleton\"\u003elaunch-terraform-skeleton\u003c/a\u003e\u003c/strong\u003e\u003cbr\u003e\u003cbr/\u003eCommon workflows and configurations shared by\u003cbr/\u003eTerraform modules. Updates to this repository are\u003cbr/\u003econsumed by the repositories that implement it\u003cbr/\u003eon a regular schedule.\"]\n```\n\n## How this repository works\n\nThis repository is the primary distribution point for updates across the entire Launch Terraform ecosystem. Changes made to CI/CD workflows, tool versions, shared configuration, or module standards propagate automatically to every Terraform primitive repository. Keeping this repository current is the main lever for evolving the ecosystem.\n\n## Pre-Requisites\n\nThe following commands should be available on your system:\n\n- `asdf` or `mise`\n- `make`\n- `python3` (for pre-commit)\n\nAfter cloning this repository, run `make configure` from the root to install all necessary dependencies and ensure your system is set up correctly.\n\n### Delivery mechanism\n\nThe `template/` folder is managed by [Copier](https://copier.readthedocs.io/en/stable/). Everything in `template/` is pushed out to downstream Terraform module repositories and kept current by the [automated update-from-skeleton workflow](./template/.github/workflows/update-from-skeleton.yml). When a new release of this repository is published, that workflow runs in each downstream repository, applies the updated files, and opens a pull request. If all checks pass, the pull request merges automatically with no manual intervention required.\n\nCopier is change-aware: it tracks what was previously delivered and merges updates carefully, so per-repository customizations (such as additions to `.gitignore`) are preserved across updates. When Copier cannot safely merge a change -- for example, because a downstream repo has modified a file that was also changed here -- it leaves the pull request open for a human or agent to resolve before merging.\n\n### What to keep current here\n\nBecause this repository drives the ecosystem, it must be kept current. Ongoing maintenance tasks include:\n\n- **Workflows**: Sync updated commit SHAs from [launch-workflows](https://github.com/launchbynttdata/launch-workflows) when new or updated workflows are published there.\n- **Tool versions**: Update `.tool-versions` when new versions of Terraform, tflint, terraform-docs, golangci-lint, or other toolchain components should be adopted ecosystem-wide.\n- **Shared configuration**: Evolve `.tflint.hcl`, `.golangci.yaml`, `.pre-commit-config.yaml`, and related files as standards change.\n- **AI agent guidance**: Update agent files (e.g. `primitive-module-creator.agent.md`) to reflect current patterns and tooling.\n\n## Release process\n\nBecause a single release here can touch hundreds of downstream repositories, changes are validated incrementally before being rolled out to the full ecosystem using a prerelease (release-candidate) gate.\n\n1. Open a pull request with changes to the `template/` folder.\n2. Once reviewed, approved, and passing all checks, merge to `main`.\n3. Merging to `main` automatically creates two releases:\n    - A **prerelease** (release candidate) is published immediately.\n    - A **full release** for the same version is created in draft state but not yet published.\n4. The prerelease may be consumed by any repository that has opted in to prereleases. Validate that the change behaves as expected across those repositories.\n    - If issues are found, open additional pull requests, merge them to `main`, and test the resulting new prerelease. Repeat until the change is stable.\n5. Once the prerelease is validated, **publish the drafted full release**. This makes the update available for all downstream repositories.\n\n\u003e **Before publishing the full release,** double-check release notes to ensure that all commits from the release candidates are included.\n\n## Prerelease opt-in\n\nPrereleases are opt-in at the repository level, controlled via a GitHub Custom Property. Following the instructions in the [launch-terraform-modules](https://github.com/launchbynttdata/launch-terraform-modules) repository, set the `prerelease` property to `\"true\"` on a Terraform primitive repository to have its auto-update workflow track release candidates in addition to full releases. This is the recommended way to test a speculative change against a representative sample of the ecosystem before committing to a full rollout.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchbynttdata%2Flaunch-terraform-skeleton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaunchbynttdata%2Flaunch-terraform-skeleton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchbynttdata%2Flaunch-terraform-skeleton/lists"}