Thank you for your interest in contributing to azswitch! This document provides guidelines and information about contributing.
- Go 1.25 or later
- Azure CLI (for testing)
- golangci-lint (for linting)
- Docker (optional, for container builds)
-
Fork the repository
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/azswitch.git cd azswitch -
Install dependencies:
go mod download
-
Build:
make build
-
Run tests:
make test
- Follow standard Go conventions
- Run
make fmtbefore committing - Run
make lintto check for issues - Write tests for new functionality
This project follows Conventional Commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesrefactor:- Code refactoringtest:- Test changeschore:- Maintenance tasks
Example:
feat(tui): add search filtering for subscriptions
- Add fuzzy search to subscription list
- Highlight matching characters- Create a feature branch from
main - Make your changes
- Run tests and linting
- Push your branch
- Open a Pull Request
azswitch/
├── cmd/azswitch/ # Application entry point
├── internal/
│ ├── azure/ # Azure CLI wrapper
│ ├── tui/ # Bubble Tea TUI
│ └── version/ # Version info
├── .github/workflows/ # CI/CD
└── Makefile # Build automation# Run all tests
make test
# Run with coverage
make coverageUse azure.NewMockClient() for testing TUI components without Azure CLI.
Feel free to open an issue for questions or discussions.