This directory contains development container configurations for a consistent development experience.
- Install VS Code and the Dev Containers extension
- Clone this repository
- Open in VS Code
- Click "Reopen in Container" when prompted (or use Command Palette: "Dev Containers: Reopen in Container")
- Go to the repository on GitHub
- Click the green "Code" button
- Select "Codespaces" tab
- Click "Create codespace on main"
- Use Case: Standard development with full tooling
- Features:
- .NET 9 SDK
- Docker-in-Docker support
- GitHub CLI
- PowerShell
- Pre-configured VS Code extensions
- Development tools (ReportGenerator, dotnet-outdated)
- Use Case: Multi-container setup with Redis
- Features:
- Application container with .NET 9
- Redis container for caching tests
- Docker Compose orchestration
- Minimal VS Code configuration
- ✅ .NET 9 SDK
- ✅ Docker CLI
- ✅ GitHub CLI
- ✅ C# Dev Kit
- ✅ EditorConfig support
- ✅ Docker extension
- ✅ GitHub Actions extension
- ✅ Spell checker
- 8080: MCP Server (main application)
- 5000: HTTP development server
- 5001: HTTPS development server
- 6379: Redis (when using docker-compose setup)
The container sets these environment variables:
DOTNET_CLI_TELEMETRY_OPTOUT=1- Disable .NET telemetryDOTNET_NOLOGO=1- Hide .NET startup messagesASPNETCORE_ENVIRONMENT=Development- Set development mode
- NuGet Cache: Persistent volume for faster package restoration
- Source Code: Workspace mounted for live editing
# Build and run
dotnet run --project src/AzureDevOps.MCP
# Run with specific configuration
dotnet run --project src/AzureDevOps.MCP --configuration Debug# Run all tests
dotnet test
# Run with detailed output
dotnet test --verbosity normal
# Run specific test categories
dotnet test --filter Category=Unit
dotnet test --filter Category=Integration
# Test coverage is handled by CI/CD# Build Docker image
docker build -t azuredevops-mcp .
# Run with docker-compose
docker-compose -f docker-compose.dev.yml up- Copy
.env.exampleto.env.development - Update with your Azure DevOps details:
AZDO_ORGANIZATIONURL=https://dev.azure.com/your-organization AZDO_PERSONALACCESSTOKEN=your-pat-token
The configuration is optimized for GitHub Codespaces with:
- Automatic port forwarding
- Pre-built development environment
- Integrated GitHub CLI for repository operations
-
Ensure Docker is running
- Windows: Check Docker Desktop is running
- macOS: Check Docker Desktop is running
- Linux: Check
dockerservice is active
-
Check Docker resources
- Allocate at least 4GB RAM to Docker
- Ensure sufficient disk space (2GB+ free)
-
Try alternative configurations
- Use
devcontainer-minimal.jsonfor basic setup - Use
devcontainer-simple.jsonfor docker-compose setup
- Use
-
Rebuild container
- Command Palette: "Dev Containers: Rebuild Container"
- Or: "Dev Containers: Rebuild and Reopen in Container"
Error: "Command failed"
- Try the minimal configuration first
- Check Docker Desktop is not updating
- Restart Docker Desktop and VS Code
Permission Issues
- Ensure your user has Docker permissions
- On Linux: Add user to
dockergroup
Slow Performance
- Increase Docker Desktop memory (8GB+ recommended)
- Close other Docker containers
- Use SSD storage for Docker
Extension Issues
- Start with minimal extensions first
- Install additional extensions after container starts
- Some extensions require container restart
The previous build issues with package version conflicts have been resolved:
- ✅ Fixed Microsoft.CodeAnalysis package version conflicts
- ✅ Corrected Sentry performance service implementation
- ✅ Updated cache statistics method calls
- ✅ Simplified devcontainer setup process
If devcontainers don't work for you:
- Manual setup:
dotnet restore && dotnet build && dotnet test - Create an issue with your Docker/VS Code versions
- All known dependency conflicts have been resolved
Edit .devcontainer/devcontainer.json:
"extensions": [
"ms-dotnettools.csharp",
"your-extension-id"
]Edit .devcontainer/Dockerfile or onCreateCommand in devcontainer.json
Add to remoteEnv in devcontainer.json:
"remoteEnv": {
"YOUR_VARIABLE": "value"
}