feat(devcontainer): add GitHub Codespaces configuration (#6801)

* feat(devcontainer): add Codespaces config with Claude Code and Vale

Adds GitHub Codespaces / devcontainer configuration:
- Node.js 20 base image with Hugo extended
- Auto-installs: yarn dependencies, Vale CLI, Claude Code CLI
- VS Code extensions: Markdown, Prettier, YAML, Vale
- Port forwarding for Hugo dev server (1313)
- Secrets prompt for ANTHROPIC_API_KEY

Usage:
1. Open repo in Codespaces
2. Add ANTHROPIC_API_KEY to Codespaces secrets
3. Run `claude` to start Claude Code with full network access

https://claude.ai/code/session_0173AuWPoy6UXiatCMGz4W7h

* fix(devcontainer): remove invalid secrets field, use latest Hugo

- Remove 'secrets' field (not valid in devcontainer schema, configure in GitHub settings)
- Remove specific Hugo version (use feature default)
- Add codespaces.openFiles for better UX

https://claude.ai/code/session_0173AuWPoy6UXiatCMGz4W7h

* fix(devcontainer): simplify config, remove docker-in-docker

- Remove docker-in-docker feature (may cause filesystem provider errors)
- Remove codespaces-specific settings
- Simplify extensions list
- Make setup.sh more resilient (don't fail on warnings)

https://claude.ai/code/session_0173AuWPoy6UXiatCMGz4W7h

---------

Co-authored-by: Claude <noreply@anthropic.com>
jts-deps-yarn-upgrade
Jason Stirnaman 2026-02-10 13:01:18 -06:00 committed by GitHub
parent b7a4077110
commit c6efa0a6d7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,30 @@
{
"name": "InfluxData Docs",
"image": "mcr.microsoft.com/devcontainers/javascript-node:20",
"features": {
"ghcr.io/devcontainers/features/hugo:1": {
"extended": true
}
},
"postCreateCommand": "bash .devcontainer/setup.sh",
"customizations": {
"vscode": {
"extensions": [
"yzhang.markdown-all-in-one",
"esbenp.prettier-vscode",
"redhat.vscode-yaml"
],
"settings": {
"editor.formatOnSave": true,
"[markdown]": {
"editor.wordWrap": "on"
}
}
}
},
"forwardPorts": [1313]
}

39
.devcontainer/setup.sh Executable file
View File

@ -0,0 +1,39 @@
#!/bin/bash
echo "Setting up InfluxData Docs development environment..."
# Install project dependencies
echo "Installing Node.js dependencies..."
yarn install || echo "Warning: yarn install had issues"
# Install Vale CLI
echo "Installing Vale linter..."
VALE_VERSION="3.12.0"
curl -sfL "https://github.com/errata-ai/vale/releases/download/v${VALE_VERSION}/vale_${VALE_VERSION}_Linux_64-bit.tar.gz" | tar -xz -C /tmp
sudo mv /tmp/vale /usr/local/bin/vale 2>/dev/null || mv /tmp/vale ~/bin/vale
chmod +x /usr/local/bin/vale 2>/dev/null || chmod +x ~/bin/vale
# Sync Vale styles
echo "Syncing Vale styles..."
vale sync 2>/dev/null || echo "Vale sync skipped (styles exist locally)"
# Install Claude Code CLI
echo "Installing Claude Code CLI..."
npm install -g @anthropic-ai/claude-code || echo "Warning: Claude Code install had issues"
# Verify installations
echo ""
echo "✅ Setup complete! Installed versions:"
echo " Node.js: $(node --version)"
echo " Yarn: $(yarn --version)"
echo " Hugo: $(hugo version | head -1)"
echo " Vale: $(vale --version)"
echo " Claude Code: $(claude --version 2>/dev/null || echo 'installed (run claude to authenticate)')"
echo ""
echo "🚀 Quick start commands:"
echo " hugo server # Start dev server on port 1313"
echo " vale content/ # Run style linter"
echo " claude # Start Claude Code CLI"
echo ""
echo "💡 Tip: Set ANTHROPIC_API_KEY in Codespaces secrets for Claude Code"