Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 2 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 1 year ago)
- Default Branch: master
- Last Pushed: 2024-06-25T15:42:35.000Z (6 months ago)
- Last Synced: 2024-10-04T11:41:21.470Z (3 months ago)
- Topics: codespaces, devcontainer, devcontainer-feature, devcontainer-features
- Language: Shell
- Homepage:
- Size: 66.4 KB
- Stars: 2
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
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:1": {}
}
}
```## 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.