https://github.com/hspaans/devcontainer-features
Additional Features for VSCode Devcontainers and GitHub Codespaces
https://github.com/hspaans/devcontainer-features
codespaces devcontainer devcontainer-feature devcontainer-features
Last synced: 5 months ago
JSON representation
Additional Features for VSCode Devcontainers and GitHub Codespaces
- Host: GitHub
- URL: https://github.com/hspaans/devcontainer-features
- Owner: hspaans
- License: mit
- Created: 2023-12-02T22:29:20.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2025-07-15T22:07:56.000Z (6 months ago)
- Last Synced: 2025-08-23T07:59:46.221Z (5 months ago)
- Topics: codespaces, devcontainer, devcontainer-feature, devcontainer-features
- Language: Shell
- Homepage:
- Size: 80.1 KB
- Stars: 3
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Dev Container Features
## Contents
This repository contains following features:
- [ansible-lint](./src/ansible-lint/README.md): Ansible Lint
- [django-upgrade](./src/django-upgrade/README.md): Django-upgrade
- [pyadr](./src/pyadr/README.md): Python ADR
- [pycqa](./src/pycqa/README.md): PyCQA tools bundle
- [pytest](./src/pytest/README.md): Pytest
- [pymarkdownlnt](./src/pymarkdownlnt/README.md): PyMarkdownLinter
- [pyupgrade](./src/pyupgrade/README.md): Pyupgrade
- [rstcheck](./src/rstcheck/README.md): rstcheck
- [sshpass](./src/sshpass/README.md): SSH Pass for Ansible
## Usage
To use the features from this repository, add the desired features to `devcontainer.json.`
This example use ansible-lint feature on devcontainer.
```jsonc
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/hspaans/devcontainer-features/ansible-lint:2": {}
}
}
```
## Repo and Feature Structure
Similar 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`.
```
├── src
│ ├── ansible-lint
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
│ ├── pyadr
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
| └── ...
│ ├── devcontainer-feature.json
│ └── install.sh
| ...
├── test
│ ├── ansible-lint
│ │ ├── scenarios.json
│ │ └── test.sh
│ ├── pyadr
│ │ ├── scenarios.json
│ │ └── test.sh
| └── ...
│ ├── scenarios.json
│ └── test.sh
...
```
An [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.