{"id":19915979,"url":"https://github.com/mysmartspaces/envroot.devcontainer","last_synced_at":"2025-03-01T09:23:59.601Z","repository":{"id":153903692,"uuid":"594194603","full_name":"mysmartspaces/envroot.devcontainer","owner":"mysmartspaces","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-27T20:28:25.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T23:25:09.631Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/mysmartspaces.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}},"created_at":"2023-01-27T20:28:15.000Z","updated_at":"2023-03-04T13:09:37.000Z","dependencies_parsed_at":"2023-08-19T08:38:45.537Z","dependency_job_id":null,"html_url":"https://github.com/mysmartspaces/envroot.devcontainer","commit_stats":null,"previous_names":["appycentral/envroot.devcontainer","igeclouds-projects/envroot.devcontainer","projectoperations/envroot.devcontainer","localhost-igeclouds/envroot.devcontainer","localhostdevsec/envroot.devcontainer","smartspaceproject/envroot.devcontainer","mysmartspaces/envroot.devcontainer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mysmartspaces%2Fenvroot.devcontainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mysmartspaces%2Fenvroot.devcontainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mysmartspaces%2Fenvroot.devcontainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mysmartspaces%2Fenvroot.devcontainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mysmartspaces","download_url":"https://codeload.github.com/mysmartspaces/envroot.devcontainer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241344349,"owners_count":19947537,"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":[],"created_at":"2024-11-12T21:43:10.729Z","updated_at":"2025-03-01T09:23:59.579Z","avatar_url":"https://github.com/mysmartspaces.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dev Container Templates: Self Authoring Guide\n\n\u003e This repo provides a starting point and example for creating your own custom [Dev Container Templates](https://containers.dev/implementors/templates), hosted for free on GitHub Container Registry.  The example in this repository follows the [Dev Container Template distribution specification](https://containers.dev/implementors/templates-distribution/).  \n\u003e\n\u003e To provide feedback on the distribution spec, please leave a comment [on spec issue #71](https://github.com/devcontainers/spec/issues/71).\n\n## Repo and Template Structure\n\nThis repository contains a _collection_ of two Templates - `hello` and `color`. These Templates serve as simple template implementations which helps containerize the project. Similar to the [`devcontainers/templates`](https://github.com/devcontainers/templates) repo, this repository has a `src` folder.  Each Template has its own sub-folder, containing at least a `devcontainer-template.json` and `.devcontainer/devcontainer.json`. \n\n```\n├── src\n│   ├── color\n│   │   ├── devcontainer-template.json\n│   │   └──| .devcontainer\n│   │      └── devcontainer.json\n│   ├── hello\n│   │   ├── devcontainer-template.json\n│   │   └──| .devcontainer\n│   │      ├── devcontainer.json\n│   │      └── Dockerfile\n|   ├── ...\n│   │   ├── devcontainer-template.json\n│   │   └──| .devcontainer\n│   │      └── devcontainer.json\n├── test\n│   ├── color\n│   │   └── test.sh\n│   ├── hello\n│   │   └── test.sh\n│   └──test-utils\n│      └── test-utils.sh\n...\n```\n\n### Options\n\nAll available options for a Template should be declared in the `devcontainer-template.json`. The syntax for the `options` property can be found in the [devcontainer Template json properties reference](https://containers.dev/implementors/templates#devcontainer-templatejson-properties).\n\nFor example, the `color` Template provides three possible options (`red`, `gold`, `green`), where the default value is set to \"red\".\n\n```jsonc\n{\n    // ...\n    \"options\": {\n        \"favorite\": {\n            \"type\": \"string\",\n            \"description\": \"Choose your favorite color.\"\n            \"proposals\": [\n                \"red\",\n                \"gold\",\n                \"green\"\n            ],\n            \"default\": \"red\"\n        }\n    }\n}\n```\n\nAn [implementing tool](https://containers.dev/supporting#tools) will use the `options` property from [the documented Dev Container Template properties](https://containers.dev/implementors/templates#devcontainer-templatejson-properties) for customizing the Template. See [option resolution example](https://containers.dev/implementors/templates#option-resolution-example) for details.\n\n## Distributing Templates\n\n### Versioning\n\nTemplates are individually versioned by the `version` attribute in a Template's `devcontainer-template.json`. Templates are versioned according to the semver specification. More details can be found in [the Dev Container Template specification](https://containers.dev/implementors/templates-distribution/#versioning).\n\n### Publishing\n\n\u003e NOTE: The Distribution spec can be [found here](https://containers.dev/implementors/templates-distribution/).  \n\u003e\n\u003e While any registry [implementing the OCI Distribution spec](https://github.com/opencontainers/distribution-spec) can be used, this template will leverage GHCR (GitHub Container Registry) as the backing registry.\n\nTemplates are source files packaged together that encode configuration for a complete development environment.\n\nThis repo contains a GitHub Action [workflow](.github/workflows/release.yaml) that will publish each template to GHCR.  By default, each Template will be prefixed with the `\u003cowner/\u003crepo\u003e` namespace.  For example, the two Templates in this repository can be referenced by an [implementing tool](https://containers.dev/supporting#tools) with:\n\n```\nghcr.io/devcontainers/template-starter/color:latest\nghcr.io/devcontainers/template-starter/hello:latest\n```\n\nThe provided GitHub Action will also publish a third \"metadata\" package with just the namespace, eg: `ghcr.io/devcontainers/template-starter`. This contains information useful for tools aiding in Template discovery.\n\n'`devcontainers/template-starter`' is known as the template collection namespace.\n\n### Marking Template Public\n\nFor your Template to be used, it currently needs to be available publicly. By default, OCI Artifacts in GHCR are marked as `private`. \n\nTo make them public, navigate to the Template's \"package settings\" page in GHCR, and set the visibility to 'public`. \n\n```\nhttps://github.com/users/\u003cowner\u003e/packages/container/\u003crepo\u003e%2F\u003ctemplateName\u003e/settings\n```\n\n### Adding Templates to the Index\n\nNext you will need to add your Templates collection to our [public index](https://containers.dev/templates) so that other community members can find them. Just follow these steps once per collection you create:\n\n* Go to [github.com/devcontainers/devcontainers.github.io](github.com/devcontainers/devcontainers.github.io)\n     * This is the GitHub repo backing the [containers.dev](https://containers.dev/) spec site\n* Open a PR to modify the [collection-index.yml](https://github.com/devcontainers/devcontainers.github.io/blob/gh-pages/_data/collection-index.yml) file\n\nThis index is from where [supporting tools](https://containers.dev/supporting) like [VS Code Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) and [GitHub Codespaces](https://github.com/templates/codespaces) surface Templates for their Dev Container Creation Configuration UI.\n\n### Testing Templates\n\nThis repo contains a GitHub Action [workflow](.github/workflows/test-pr.yaml) for testing the Templates. Similar to the [`devcontainers/templates`](https://github.com/devcontainers/templates) repo, this repository has a `test` folder.  Each Template has its own sub-folder, containing at least a `test.sh`.\n\nFor running the tests locally, you would need to execute the following commands -\n\n```\n    ./.github/actions/smoke-test/build.sh ${TEMPLATE-ID} \n    ./.github/actions/smoke-test/test.sh ${TEMPLATE-ID} \n```\n\n### Updating Documentation\n\nThis repo contains a GitHub Action [workflow](.github/workflows/release.yaml) that will automatically generate documentation (ie. `README.md`) for each Template. This file will be auto-generated from the `devcontainer-template.json` and `NOTES.md`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmysmartspaces%2Fenvroot.devcontainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmysmartspaces%2Fenvroot.devcontainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmysmartspaces%2Fenvroot.devcontainer/lists"}