Nano Banana Pro
Agent skill for nano-banana-pro
This repository contains [devcontainer features](https://containers.dev/implementors/features/) to assist teams in adopting GitHub Codespaces. Features are reusable "plugins" that can be installed into devcontainers to add tools, languages, or services.
Sign in to like and favorite skills
This repository contains devcontainer features to assist teams in adopting GitHub Codespaces. Features are reusable "plugins" that can be installed into devcontainers to add tools, languages, or services.
/src/ - Contains all feature implementations, each in its own subdirectory/test/ - Contains test scenarios for each feature, plus global integration tests/.github/workflows/ - CI/CD automation for testing and releasing featuresEach feature in
/src/{feature-name}/ contains:
devcontainer-feature.json - Feature metadata, options, and configurationinstall.sh - Installation script (main implementation)README.md - Feature documentation (auto-generated, do not edit manually)NOTES.md - Implementation notes that get included in README.md generation (auto-generated, do not edit manually)/test/{feature-name}/ - Feature-specific tests with scenarios.json and test scripts/test/_global/ - Integration tests that test multiple features togetherscenarios.json files and executed using the devcontainer CLI| Feature | Description |
|---|---|
| Azure Artifacts credential helper for Codespace authentication |
| Microsoft DevTool (internal only) |
| DocFX documentation generation tool |
| Handles external git repository integration in Codespaces |
| Go language with Mariner Linux support |
| Microsoft's Git distribution with Scalar and GVFS |
Features use semantic versioning (SemVer):
When making changes to a feature:
version field in devcontainer-feature.json/src/{feature-name}/devcontainer-feature.json with proper metadata:
{ "id": "feature-name", "version": "1.0.0", "name": "Feature Display Name", "description": "Brief description", "options": { /* configuration options */ }, "installsAfter": ["ghcr.io/devcontainers/features/common-utils"] }
install.sh with proper error handling and logging/test/{feature-name}/installsAfter for proper installation orderscenarios.json with comprehensive test cases# Test single feature on specific base image devcontainer features test -f {feature-name} -i {base-image} . # Test feature autogenerated scenarios only (CI pattern) devcontainer features test --skip-scenarios -f {feature-name} -i {base-image} . # Test feature custom scenarios only (CI pattern) devcontainer features test -f {feature-name} --skip-autogenerated . # Test all global scenarios devcontainer features test --global-scenarios-only . # Common base images used in CI # - mcr.microsoft.com/devcontainers/base:ubuntu # - mcr.microsoft.com/devcontainers/base:debian # - mcr.microsoft.com/cbl-mariner/base/core:2.0
test-pr.yaml - Tests changed features on pull requests using path filteringtest-all.yaml - Comprehensive testing on main branch across all featuresrelease.yaml - Publishes features to GitHub Container Registryset -e for error handling"${VARIABLE}"# Check for package manager if command -v apt-get >/dev/null 2>&1; then package_manager="apt" elif command -v tdnf >/dev/null 2>&1; then package_manager="tdnf" fi
# Auto-detect latest version if [ "${VERSION}" = "latest" ] || [ "${VERSION}" = "lts" ]; then VERSION=$(curl -s API_ENDPOINT | jq -r .tag_name | sed 's/^v//') fi
docker exec to inspect container statemainversion field in devcontainer-feature.json following semantic versioningWhen working on this repository, focus on creating reliable, cross-platform features that enhance the Codespaces development experience while following established patterns and best practices.