{"id":15640953,"url":"https://github.com/hspaans/devcontainer-features","last_synced_at":"2025-08-27T11:04:32.366Z","repository":{"id":210466584,"uuid":"726624165","full_name":"hspaans/devcontainer-features","owner":"hspaans","description":"Additional Features for VSCode Devcontainers and GitHub Codespaces","archived":false,"fork":false,"pushed_at":"2025-07-15T22:07:56.000Z","size":82,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-23T07:59:46.221Z","etag":null,"topics":["codespaces","devcontainer","devcontainer-feature","devcontainer-features"],"latest_commit_sha":null,"homepage":"","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/hspaans.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}},"created_at":"2023-12-02T22:29:20.000Z","updated_at":"2025-07-19T00:36:09.000Z","dependencies_parsed_at":"2023-12-02T23:30:22.456Z","dependency_job_id":"7c6dc446-f41e-468d-94b1-aeef388de0ad","html_url":"https://github.com/hspaans/devcontainer-features","commit_stats":null,"previous_names":["hspaans/devcontainer-features"],"tags_count":20,"template":false,"template_full_name":"devcontainers/feature-starter","purl":"pkg:github/hspaans/devcontainer-features","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hspaans%2Fdevcontainer-features","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hspaans%2Fdevcontainer-features/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hspaans%2Fdevcontainer-features/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hspaans%2Fdevcontainer-features/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hspaans","download_url":"https://codeload.github.com/hspaans/devcontainer-features/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hspaans%2Fdevcontainer-features/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272323952,"owners_count":24914316,"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","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["codespaces","devcontainer","devcontainer-feature","devcontainer-features"],"created_at":"2024-10-03T11:40:43.958Z","updated_at":"2025-08-27T11:04:32.359Z","avatar_url":"https://github.com/hspaans.png","language":"Shell","readme":"# Dev Container Features\n\n## Contents\n\nThis repository contains following features:\n\n- [ansible-lint](./src/ansible-lint/README.md): Ansible Lint\n- [django-upgrade](./src/django-upgrade/README.md): Django-upgrade\n- [pyadr](./src/pyadr/README.md): Python ADR\n- [pycqa](./src/pycqa/README.md): PyCQA tools bundle\n- [pytest](./src/pytest/README.md): Pytest\n- [pymarkdownlnt](./src/pymarkdownlnt/README.md): PyMarkdownLinter\n- [pyupgrade](./src/pyupgrade/README.md): Pyupgrade\n- [rstcheck](./src/rstcheck/README.md): rstcheck\n- [sshpass](./src/sshpass/README.md): SSH Pass for Ansible\n\n## Usage\n\nTo use the features from this repository, add the desired features to `devcontainer.json.`\n\nThis example use ansible-lint feature on devcontainer.\n\n```jsonc\n{\n  \"image\": \"mcr.microsoft.com/devcontainers/base:ubuntu\",\n  \"features\": {\n    \"ghcr.io/hspaans/devcontainer-features/ansible-lint:2\": {}\n  }\n}\n```\n\n## Repo and Feature Structure\n\nSimilar to the [`devcontainers/features`](https://github.com/devcontainers/features) repo, this repository has a `src` folder.  Each Feature has its own sub-folder, containing at least a `devcontainer-feature.json` and an entrypoint script `install.sh`.\n\n```\n├── src\n│   ├── ansible-lint\n│   │   ├── devcontainer-feature.json\n│   │   └── install.sh\n│   ├── pyadr\n│   │   ├── devcontainer-feature.json\n│   │   └── install.sh\n|   └── ...\n│       ├── devcontainer-feature.json\n│       └── install.sh\n|   ...\n├── test\n│   ├── ansible-lint\n│   │   ├── scenarios.json\n│   │   └── test.sh\n│   ├── pyadr\n│   │   ├── scenarios.json\n│   │   └── test.sh\n|   └── ...\n│       ├── scenarios.json\n│       └── test.sh\n...\n```\n\nAn [implementing tool](https://containers.dev/supporting#tools) will composite [the documented dev container properties](https://containers.dev/implementors/features/#devcontainer-feature-json-properties) from the feature's `devcontainer-feature.json` file, and execute in the `install.sh` entrypoint script in the container during build time.  Implementing tools are also free to process attributes under the `customizations` property as desired.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhspaans%2Fdevcontainer-features","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhspaans%2Fdevcontainer-features","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhspaans%2Fdevcontainer-features/lists"}